Syndiquer le contenu
Mis à jour : il y a 23 heures 22 min

Revue de presse de l'April pour la semaine 26 de l'année 2015

29 juin, 2015 - 22:38

La revue de presse de l'April est régulièrement éditée par les membres de l'association. Elle couvre l'actualité de la presse en ligne, liée au logiciel libre. Il s'agit donc d'une sélection d'articles de presse et non de prises de position de l'association de promotion et de défense du logiciel libre.

Sommaire

[L'OBS] Je suis tombé dans l’univers parallèle des «crypto-parties»

Par Marc Meillassoux, le dimanche 28 juin 2015. Extrait:

Ces rencontres hackers-débutants peuvent rebuter par leur langage ésotérique: mais elles sont précieuses pour partager des outils de cryptographie et sécuriser les connexions internet, mails, docs et périphériques.

Lien vers l'article original: http://rue89.nouvelobs.com/2015/06/28/suis-tombe-lunivers-parallele-crypto-parties-259995

[ITespresso] Vente liée ordinateur-logiciel: la Cour de cassation demande l'arbitrage de l'Europe

Par la rédaction, le vendredi 26 juin 2015. Extrait:

Sur demande de la Cour de cassation française, la Cour de justice de l’Union européenne devra se prononcer que la réalité de pratiques commerciales déloyales dans le cadre de la vente liée d’ordinateur et de logiciels.

Lien vers l'article original: http://www.itespresso.fr/vente-liee-ordinateur-logiciel-cour-cassation-demande-arbitrage-europe-99893.html

Et aussi:

Voir aussi:

[Le Mag numérique] Richard Stallman à Rennes pour clôturer Jardin Entropique

Par Anthony Chénais, le vendredi 26 juin 2015. Extrait:

Breizh Entropy Congress et Jardin Numérique fusionnent pour créer un événement sur le numérique et la liberté, Jardin Entropique.

Lien vers l'article original: http://www.lemag-numerique.com/2015/06/richard-stallman-a-rennes-pour-cloturer-jardin-entropique-7601

Et aussi:

[Next INpact] Le CNNum invite le gouvernement à donner la priorité aux logiciels libres

Par Xavier Berne, le mardi 23 juin 2015. Extrait:

Le moins que l’on puisse dire, c’est que le rapport remis jeudi à Manuel Valls, et qui se présente comme le fruit de plus de cinq mois de concertation citoyenne, prend clairement position en faveur du logiciel libre. Dans le sillon d'un précédent rapport sénatorial, le Conseil national du numérique préconise en effet de «mobiliser le levier de la commande publique pour mettre en avant des exigences d’interopérabilité, de standards ouverts et d’accès au code source».

Lien vers l'article original: http://www.nextinpact.com/news/95515-le-cnnum-invite-gouvernement-a-donner-priorite-aux-logiciels-libres.htm

Et aussi:

Voir aussi:

[Numerama] Loi Renseignement: un recours citoyen de 120 pages dévoilé!

Par Guillaume Champeau, le mardi 23 juin 2015. Extrait:

La Quadrature du Net, l'association French Data Network (FDN) et la fédération FDN ont rendu public mardi un projet d'argumentaire de 120 pages qui sera envoyé au Conseil constitutionnel pour lui permettre de limiter la portée du projet de loi Renseignement.

Lien vers l'article original: http://www.numerama.com/magazine/33489-loi-renseignement-un-recours-citoyen-de-120-pages-devoile.html

Et aussi:

Voir aussi:

[Next INpact] Le gouvernement prêt à saper l'Open Data sur les données de transport

Par Xavier Berne, le lundi 22 juin 2015. Extrait:

Alors que le Premier ministre promettait jeudi d’inscrire les principes de l’Open Data dans la loi, son gouvernement a soutenu dans le même temps un amendement à la loi Macron qui permettra aux sociétés de transport de s’exonérer des obligations de diffusion initialement voulues par le législateur. La SNCF, Air France ou la RATP pourront en effet signer des codes de bonne conduite prévoyant entre autre le paiement de redevances.

Lien vers l'article original: http://www.nextinpact.com/news/95504-le-gouvernement-pret-a-saper-open-data-sur-donnees-transport.htm

Télécharger ce contenu au format Epub

Lire les commentaires

DragonFly BSD 4.2

29 juin, 2015 - 18:40

La nouvelle version stable du système d'exploitation DragonFly BSD, la 4.2, est sortie aujourd'hui 29 juin 2015. Elle est disponible au téléchargement. De nombreux changements ont été apportés depuis la version 4.0 de novembre dernier, notamment de nombreuses améliorations pour le pilote i915. GCC 5.1.1 fait son apparition dans base, d'importants changements ont lieu dans les pilotes wifi, et la pile audio qui souffrait de plusieurs problèmes a été revue en profondeur.

Merci à tous les contributeurs à cette dépêche et en particulier à François Tigeot et Joris Giovannangeli.

Sommaire Noyau Performances

Maintenant que la plupart des sous-système importants du noyau peuvent fonctionner en parallèle sans verrous, les performances en charge peuvent être dégradées par des choses apparemment anodines.
C'est le cas du sous-système sysctl, utilisé pour échanger des informations entre le noyau et les applications en espace utilisateur, qui utilisait jusqu'à maintenant un verrou global.
Ce verrou n'est maintenant utilisé plus que pour la création et la suppression de nœuds. L'immense majorité des opérations peuvent désormais se dérouler en parallèle, sans se bloquer.

L'algorithme CRC iscsi a été remplacé par la version rapide de Gary S. Brown, obtenue depuis FreeBSD. Cela devrait permettre d'améliorer grandement les performances du système de fichier HAMMER2.

Une fonction critique du sous-système SCSI, la CAM SWI est maintenant capable de fonctionner sur plusieurs processeurs en parallèle, ce qui devrait améliorer les performances en entrée/sorties lorsque plusieurs disques ou SSD travaillent en même temps.

Le sous-système callout a été réécrit pour fonctionner de manière plus efficace. Cette interface de programmation du noyau permet d'enregistrer des minuteurs associés à une fonction de traitement. Quand le temps demandé est écoulé, la fonction enregistrée est exécutée. Il est désormais plus simple de forcer l’exécution des fonctions sur un CPU particulier. Une API permettant de se saisir automatiquement d'un verrou avant d’exécuter certaines fonctions, à la manière de FreeBSD, a été implémentée. Cette fonctionnalité devrait faciliter le port de pilotes venant du noyau FreeBSD.

L'allocateur mémoire interne du noyau utilise le mécanisme de Slab allocation. Pour les tailles les plus courantes, l'allocation est arrondie à la puissance de 2 supérieure. Au lieu de créer les objets uns à uns, des zones mémoires de tailles fixes pouvant contenir plusieurs objets de tailles très proches sont allouées d'un seul coup, puis remplies selon la demande. Cela permet de réduire la pression sur le sous-système mémoire. La fonction slab_cleanup est chargée de détruire les zones qui ne sont plus utilisées. Elle utilisait jusqu'à présent des listes simplement chaînées. Sur certaines machines comportant une quantité de mémoire importante, supprimer des slabs inutilisés pouvait consommer un temps excessif de processeur. Les listes sont désormais doublement chaînées, ce qui réduit la complexité de l'opération. Ce changement était particulièrement visible sur Monster, une machine de test quadri-Opteron avec 128GB de mémoire et 48 cœurs relativement lents.

Systèmes de fichiers HAMMER

HAMMER est un système de fichiers déclaré stable pour la production lors de la sortie de DragonFly 2.2 en avril 2009 et utilisé comme système de fichiers par défaut à l'installation avec la sortie de DragonFly 2.4 en septembre 2009. Avec les années, HAMMER a bénéficié de nombreux ajustements, améliorations de performance ou encore de la dé-duplication de données.

Cependant, Matt Dillon, l'auteur de HAMMER, consacre désormais une bonne partie de son temps au développement de HAMMER2, un nouveau système de fichiers qui devrait corriger les quelques défauts de HAMMER ainsi qu'apporter la prise en charge du clustering au niveau du système de fichiers. Une personne non proche du développement de DragonFly pourrait penser que HAMMER ne reçoit désormais plus le soin nécessaire à sa maintenance mais il n'en est rien.

De nouveaux développements mineurs d'HAMMER ont ainsi eu lieu depuis DragonFly 4.0 :

  • une commande "hammer abort-cleanup" a été ajoutée ;
  • l'export NFS de systèmes de fichiers esclaves a été rendu possible.

L'utilisation d'HAMMER en production sur des serveurs de stockage de plus en plus importants a également permis de corriger des bugs gênants mais qui n'étaient pas visibles sur des machines comportant un nombre de disques modestes.

La bibliothèque libhammer(3), permettant de gérer les fonctions avancées des systèmes de fichier HAMMER, a également fait l'objet de nombreuses corrections de bugs.

Par ailleurs, un nouveau contributeur, Tomohiro Kusumi, a fait son apparition depuis février dernier. Jusqu'à présent il a apporté quasi exclusivement des corrections mineures à ce système de fichier, tout en étudiant en détail son fonctionnement.

Pour la petite histoire, Tomohiro souhaitait initialement faire un portage natif de HAMMER pour Linux (donc sans passer par FUSE) ce qui l'a poussé à regarder le code source et à commencer à soumettre quelque patchs. Le temps passant, il a fini par prendre goût à DragonFly, recevoir un commit bit et abandonner l'idée du port Linux.

De toute façon HAMMER serait très difficile à porter sur une autre plateforme selon Matt Dillon. C'est un des "défauts" que HAMMER2 devrait combler…

HAMMER2

Les personnes qui pourraient penser que HAMMER2 n'est qu'une simple évolution de HAMMER se tromperaient. Ce système de fichiers, toujours en cours d'écriture, est entièrement différent. Alors qu'il est prévu qu'il conserve les fonctionnalités de HAMMER qui lui donnent tout son intérêt (historique fin (paramétrable), snapshoting, gestion multi-volume, mirroring via le réseau, récupération instantanée lors de crashs (fsck(8) n'est pas nécessaire), …), il est également prévu de faire encore un pas en avant.

Matt Dillon a acquis une excellente expérience lors du développement de HAMMER ce qui lui permet aujourd'hui d'identifier les points faibles de son implémentation. Par exemple, les arbres B+ utilisés comme structure de données sur disque et en mémoire sont remplacés par des arbres radix pour HAMMER2. Ce choix permet de réduire la complexité du code et facilite la synchronisation de plusieurs systèmes de fichiers sur le réseau, car les fichiers sont représentés naturellement par un arbre radix.

HAMMER2 est pensé pour fonctionner en multi-maîtres dans le cadre d'un cluster, chaque machine du groupe ayant la même vue du système de fichiers et les opérations effectuées sur n'importe quel nœud étant visibles par les autres.

HAMMER2 est loin d'être fini mais de nombreux progrès ont été faits depuis DragonFly 4.0 :

  • la libération d'espace après suppression de fichiers est maintenant fonctionnelle ; par le passé, le système de fichier ne pouvait que se remplir et seule une opération de formatage de type newfs permettait de récupérer l'espace disque ;
  • la gestion de disques distants est maintenant opérationnelle ;
  • la gestion de messages du cluster est maintenant opérationnelle ;
  • du travail a été fait pour la validation de quorum dans le cadre d'un cluster ;
  • la gestion de la synchronisation des données et la gestion des erreurs réseau est également en cours de développement ;
  • les Pseudo File Systems (PFS) sont maintenant compressés par défaut avec l'algorithme lz4.

Le processus de développement est itératif et des changements de structures de données disque ainsi que du refactoring de certains sous-ensembles du code de HAMMER2 ont lieu en fonction des problèmes rencontrés lors des progrès de l'implémentation.

Le document de référence HAMMER2 a été mis à jour en fonction de ces changements.

tmpfs et ext2

Non content d'avoir amélioré de nombreux détails du code de HAMMER, Tomohiro Kusumi a également commencé à s'attaquer à tmpfs et ext2, apportant de nombreuses corrections de bugs et corrigeant la documentation lorsque cela était nécessaire.
Le pilote de gestion des systèmes de fichier ext2 n'est pas actuellement fonctionnel, mais si Tomohiro continue son travail il sera sans doute bientôt possible de relire de vieux disques durs formatés en ext2fs ou d'utiliser ce système de fichiers pour une partition d'échange entre Linux et DragonFly.

Pile graphique

Le code noyau drm a été partiellement mis à jour vers Linux 3.14 afin d'accompagner l'évolution des pilotes i915 et radeon.

De nombreuses interfaces de programmation et structures de données Linux ont été implémentées afin de faire tourner le code drm et ses pilotes avec aussi peu de modifications que possible. Du point de vue du sous-système graphique, le noyau DragonFly peut ainsi être considéré comme une implémentation sous licence BSD de Linux.

i915

Le pilote drm/i915 a été mis à jour vers la version de Linux 3.14, ce qui apporte notamment une prise en charge des GPU Broadwell (mais sans accélération pour le moment).

  • La plupart des chemins de code GEM sont maintenant similaires à ceux de Linux, entraînant une augmentation de la stabilité et des performances. Faire ce changement a été grandement aidé par l'étude du code OpenBSD.
  • De nombreuses corrections de bugs ont été apportées. Le pilote est maintenant plus robuste et résiste mieux aux plantages du GPU.
  • Les fonctions d'économie d'énergie et de compression du framebuffer sont maintenant activées par défaut (suivant la famille de GPU utilisée).
  • La gestion de l'économie d'énergie a par ailleurs été grandement améliorée.
  • Les écrans HDMI 4K sont maintenant pris en charge, ainsi que les systèmes d'affichage 3D/stéréo.
  • La gestion du modesetting a été améliorée. Il devrait maintenant être possible d'utiliser des systèmes d'affichage utilisant des couleurs 30 bits.
  • Le branchement d'écrans à chaud a été amélioré et devrait être plus robuste.
  • Outre une prise en charge initiale des GPU Broadwell, de nouveaux membres de la famille Haswell ont été ajoutés
  • Le changement de fréquence et l'overclocking ont été grandement améliorés sur les familles de GPU Sandy-Bridge à Haswell
  • Le cache géant de 128MB est maintenant activé sur les GPU Haswell qui le possèdent
  • Le moteur VECS est maintenant activé sur Haswell. Il est utilisé par libva pour des tâches de post-traitement video.
radeon

Le pilote drm/radeon a été mis à jour vers la version de Linux 3.11. Parmi les diverses améliorations que cela apporte, on peut noter une prise en charge du son via HDMI (fonctionnalité encore expérimentale).
Il est également désormais possible de lire les informations des capteurs de température.

Pile sonore

Le sous-système de gestion du son a été mis à jour vers la pile sonore de FreeBSD 11 (version en cours de développement) datée de janvier 2015.

Cela a permis d'améliorer la prise en charge du matériel récent (en particulier les chipsets Intel depuis la génération de processeurs Ivy-Bridge) et d'apporter la gestion des flux audio sur liens HDMI et DisplayPort.
Il est désormais possible de changer simplement la carte son utilisée par défaut grâce au sysctl(8) hw.snd.default_unit.

L'amélioration la plus visible est que les vidéos HTML5 peuvent maintenant être lues avec du son sans manipulation particulière.

La qualité du son est également améliorée, la nouvelle pile utilisant des algorithmes avancés de conversion et de ré-échantillonnage conçus pour respecter au maximum la fidélité des données.

Plusieurs pilotes aux licences jugées trop restrictives ou nécessitant l'emploi de blobs binaires ont été éliminés. À l'inverse, un nouveau pilote a été ajouté pour gérer le son sur les portables Acer Chromebook de la série C720. Ce pilote n'est pas présent dans FreeBSD.

Pile USB

La pile USB a été mise à jour depuis FreeBSD. La gestion de l'USB 3 est maintenant activée par défaut et les chipsets Wildcat Point gérés.

Les pilotes aue(4), cue(4), ipheth(4), kue(4) et axge(4) pour adaptateurs ethernet USB ont été portés depuis FreeBSD.

Fiabilité, facilité de maintenance et disponibilité Capteurs de température et compteurs ECC

Les pilotes dimm(4), ecc(4), coretemp(4) et memtemp(4) ont été créés ou mis à jour afin de pouvoir obtenir et traiter les informations concernant l'état du matériel de la part des capteurs inclus dans les cœurs processeur et les barrettes mémoire.

Les informations de température ainsi que le taux d'erreur ecc remontés par les différents composants sont classés en fonction de la topologie matérielle afin de pouvoir identifier facilement les composants problématiques.

Un taux d'erreurs mémoire corrigées acceptable est paramétrable pour le pilote ecc(4). Si ce taux est dépassé, une alerte est générée en utilisant le mécanisme devctl(4).

Les informations des capteurs sont sinon visibles sous les arborescences sysctl hw.sensors et hw.dimminfo comme le montrent ces exemples:

hw.sensors.cpu5.temp0: 44.00 degC (node0 core1 temp), OK
hw.sensors.dimm0.ecc0: 0 (node0 chan0 DIMM0 ecc), OK
$ sysctl hw.dimminfo
hw.dimminfo.dimm0.node: 0
hw.dimminfo.dimm0.chan: 0
hw.dimminfo.dimm0.slot: 0
hw.dimminfo.dimm0.ecc_thresh: 10
hw.dimminfo.dimm1.node: 0
hw.dimminfo.dimm1.chan: 1
hw.dimminfo.dimm1.slot: 0
hw.dimminfo.dimm1.ecc_thresh: 10

Les pilotes ecc(4) et memtemp(4) gèrent les contrôleurs mémoire des familles de processeur Intel Xeon E3, E3v2, E3v3 et Intel Xeon E5v2 et E5v3, ainsi que les processeurs Intel core i3/i5/i7 Haswell.

Watchdogs

Le pilote ichwd(4) a été mis à jour pour gérer les chipsets Intel Coleto Creek (Xeon EP Ivy-Bridge), Lynx Point et Wildcat Point (processeurs utilisant le socket 1150)

Un nouveau pilote ipmi(4) a été ajouté et gère la fonctionnalité watchdog présente dans les systèmes de gestion IPMI.

Réseau Protocoles Fonctionnalités

La prise en charge du protocole SCTP (une alternative à UDP et TCP) a été supprimée. Le code datait du début des années 2000 et n'ayant reçu aucune maintenance, il commençait à poser problème pour l'évolution d'autres éléments de la pile réseau.
Le protocole SCTP n'ayant eu aucun utilisateur connu depuis 15 ans, son élimination n'a pas fait l'objet de débat.

La prise en charge des adresses IPV4 sur les sockets IPv6 a été supprimée.
Cela a grandement simplifié le code de gestion des protocoles IPv4 et IPv6 et éliminé de nombreux problèmes potentiels dus à la complexité de gestion de l'ancien système.
OpenBSD avait déjà rejeté la gestion des adresses IPv4 sur sockets IPv6 il y a de nombreuses années, principalement pour des raisons de sécurité.
Un draft IETF du regretté Itojun recommandait déjà de ne pas utiliser ce système depuis presque 12 ans.

Le Maximum Transmission Unit (MTU) est la taille maximale d'un paquet TCP qui peut circuler entre deux hôtes sans qu'il ne soit découpé en paquets plus petits. Pour des raisons de performance, il est souhaitable que les paquets transmis soient le plus proche de la taille maximale supportée par le réseau car fragmenter des paquets réduit les performances. Le Path MTU Discovery permet de vérifier dynamiquement la taille du MTU et de l'ajuster selon les cas pour éviter la fragmentation des paquets TCP par les routeurs. Ce mécanisme est disponible depuis longtemps mais il est maintenant activé par défaut pour le protocole TCP.

Performances et parallélisme

Le code de gestion du réseau dans le noyau a une architecture plutôt inhabituelle. Pour chaque connexion, un hash symétrique est calculé en utilisant l’adresse source et l’adresse de destination. Ce hash permet de décider à quel processeur cette connexion appartient, tous les paquets étant traités par ce processeur, ce qui évite l'utilisation de verrous. Pour l'instant, seuls les protocoles UDP et TCP sur IPV4 utilisaient tous les cœurs.

Le code de gestion du protocole ICMP a été amélioré. En plus d'une amélioration de la vitesse de traitement brut de certains types datagrammes, de nombreuses fonctions sont maintenant capables de fonctionner de manière asynchrone et ne bloquent plus le thread principal de traitement des données réseau. Le code de gestion du protocole ICMP est maintenant capable de fonctionner en parallèle sur plusieurs processeurs.

Du travail a été commencé pour rendre le code de gestion des protocoles IPv6 et ALTQ capable de fonctionner en parallèle sur plusieurs processeurs. Le calcul d'un hash pour IPV6 est plus coûteux et n'était jusqu'à présent pas prioritaire. Toutes les connexions IPV6 sont pour l'instant gérées par le premier cœur mais cet état de fait devrait changer sous peu.

En plus de ces améliorations, de nombreuses corrections de bugs ont également eu lieu dans la pile TCP/IP et dans le code de gestion du protocole NFS.

Pilotes réseau

Le pilote alc(4) a été mis à jour depuis FreeBSD, apportant la gestion des cartes Atheros AR8161, AR8162, AR8171, AR8172 et Killer E2200

Le groupe de pilotes e1000 (em(4), emx et ig_hal) a été synchronisé avec les sources du pilote Intel em-7.4.2, apportant la prise en charge des puces réseau I218V.

Le sous-système wlan(4), ainsi que les pilotes iwn(4) et ath(4) ont été mis à jour depuis FreeBSD, ce qui devrait améliorer la qualité des connexions wifi.

Le pilote de(4) a été mis à jour vers la version FreeBSD r271849, ce qui lui permet de fonctionner maintenant avec plus de 4Go de RAM. Bien que les cartes réseau DEC Tulip soient maintenant extrêmement rares, ce matériel est souvent émulé par des systèmes de gestion de machines virtuelles tels que Qemu.

Nouveau pare-feu : ipfw3

Deux systèmes de parefeu réseau étaient jusqu'à présent disponibles. ipfw(8), mieux connu sous le nom de ipfw2, qui est le pare-feu traditionnel de FreeBSD. Il s'agit d'une réécriture d'un système plus vieux, ipfw, et disponible depuis FreeBSD 5. Plus tard, le pare-feu écrit pour OpenBSD, pf(4) a été adapté sous DragonFlyBSD. Ces deux pare-feux sont toujours disponibles et l'utilisateur peut choisir l'un ou l'autre en fonction de ses préférences.

Un nouveau pare-feu dérivé de ipfw(8) a été implémenté par Bill Yuan. Il a été décidé de le nommer ipfw3 pour éviter toute confusion avec ipfw2, la réécriture de ipfw(8) dans FreeBSD 5.0.

Les outils en espace utilisateur sont rétro-compatibles avec les versions précédentes mais le code noyau a été entièrement réécrit. Le but de cette réécriture est de rendre le code plus extensible et modulaire, ainsi que d'améliorer les performances sur les machines avec plusieurs processeurs. Comme la plupart des pare-feux modernes, ipfw3 est un pare-feu stateful qui conserve l'état des connexions pour éviter d'avoir à ré-évaluer les règles pour tous les paquets d'une même connexion.

Le code est organisés en deux classes de modules :

  1. les modules de filtres :

    • le module de base fournit les fonctionnalités courantes d'un pare-feu. Il permet de sélectionner les paquets entrant ou sortant en fonction de leur interface, de leur provenance et de leur destination. Il supporte les tags de paquets, ainsi que des compteurs et la gestion des états de connexion.
    • le module layer2 permet de filtrer selon les adresses MAC source ou destination.
    • le module layer4 ajoute des fonctionnalités spécifiques aux protocoles de la couche application. Il permet de filtrer selon les drapeaux des paquets TCP, ou de l'identité (utilisateur et groupe) du processus possédant le socket de destination. L'utilisateur a aussi la possibilité d'écrire des filtres complexes en utilisant le langage BPF.
  2. les modules d'action :

    • le module NAT ajoute le support de la translation d’adresse dans le noyau.
    • le module dummynet permet de spécifier des politiques de qualité de service (QoS), en limitant la bande passante, le nombre de connexions simultanées depuis une même adresse source, ou en utilisant des files à priorité.
    • le module table apporte la possibilité de créer des ensembles d’adresses ou de ports et d'utiliser cet ensemble dans une règle de filtrage à la place d'une adresse unique.
Divers

utimensat(2) et futimens(2) ont été ajoutés par Dimitris Papastamos.

L'appel système chflagsat(2) a été ajouté par Joris Giovannangeli.

Tous les pilotes possèdent maintenant une sous-arborescence sysctl(8) du type dev.foo.X. Lorsqu'elle existait, l'ancienne arborescence hw.fooX.y a été supprimée.
Ce changement permet d'obtenir une compatibilité parfaite avec les nouvelles versions de FreeBSD qui utilisent une arborescence sysctl(8) du type dev.foo.X.

L'économie d'énergie a été améliorée sur les systèmes avec processeurs Haswell tournants au ralenti (idle).

Un système de chiffrement automatique du swap a été mis en place, activé par l'option "crypt" de fstab.
Lorsque cette option est activée une clef de 256-bit est générée de manière aléatoire au boot et un périphérique chiffré mappé automatiquement au dessus de la partition de swap traditionnelle.

Le sous-système ACPICA a été mis à jour vers la version 20150515 d'Intel.

Espace utilisateur Outils de développement

Le compilateur principal a été mis à jour vers la branche de maintenance de GCC 5.1.1 datée du 25 mai 2015. Il bénéficie ainsi de 5 semaines de corrections de bugs depuis la sortie de GCC 5.1 le 22 avril 2015.

Le compilateur secondaire a logiquement été remplacé par l'ancien compilateur principal, GCC 4.7.4 et l'ancien compilateur GCC 4.4 a été supprimé.

Deux nouvelles options ont fait leur apparition dans compilers.conf pour gérer des compilateurs non installés par défaut: clang36 et gcc6-devel.

Binutils 2.25 a remplacé la version 2.24, qui est maintenant fournie en tant que linker secondaire et l'ancienne version 2.22 a été supprimée.

Le groupe d'utilitaires binutils comporte deux linkers: le traditionnel GNU ld, et une nouvelle implémentation, gold (fichier ld.gold). Gold est désactivé car étant écrit en C++, il est beaucoup plus lent à compiler que ld et n'apporte pas d'avantages significatifs en utilisation par rapport à ce dernier.

Introduction de sshlockout(8)

sshlockout(8), un utilitaire permettant de bloquer temporairement le trafic SSH venant sous forme de tentative bruteforce de login, a été ajouté. En cas de tentative de login répétée, notamment avec un utilisateur inconnu du système, une règle est automatiquement ajoutée au firewall afin de bloquer l'IP responsable du trafic. L'utilitaire n'est toutefois pas encore jugé prêt à la production.

DMA remplace Sendmail en tant que MTA par défaut

DragonFly Mail Agent (DMA) remplace Sendmail comme MTA (Mail Transfer Agent) par défaut. DMA est inclus dans base depuis la version… 1.12 de DragonFly (2008) mais pour des raisons inconnues, il n'avait jusqu'alors pas remplacé Sendmail en tant que MTA par défaut. Cela étant désormais fait, Sendmail est retiré du système de base. Une page de wiki à propos de MTA a été écrite afin de guider les utilisateurs désirant malgré tout utiliser Sendmail ou encore ceux désirant un MTA bien plus complet que DMA (Postfix, OpenSMTPD, Sendmail). En effet, DMA est simple de conception et ne vise pas à remplir les fonctionnalités d'un MTA complet. Ainsi, il se contente d'accepter les courriels des MUA (Mails User Agents) locaux et de les délivrer, soit localement mais également à distance. TLS/SSL est pris en charge ainsi que l'authentification SMTP. Cependant, DMA n'écoute pas sur le port 25 pour des connexions entrantes, puisque tel n'est pas son but.

Il est à noter que DMA ne se limite pas à DragonFly BSD. Il est ainsi aussi disponible dans FreeBSD ou différentes distributions GNU/Linux telles Debian ou Mageia par exemple.

Bibliothèque mathématique

La biliothèque mathématique, libm, a été synchronisée avec FreeBSD et NetBSD afin d'ajouter des fonctions manquantes. Bien qu'il s'agissait d'obscures variantes de fonctions existantes, leur absence était gênante car elle empêchait GCC d'activer la prise en charge de la norme C99.

Symbol versioning

Le symbol versioning a été activé sur les bibliothèques z, ncurses, lzma, edit, archive, md et bz2.

Le symbol versioning permet de ne plus avoir à gérer des numéros de bibliothèques différents à chaque changement d'interface binaire.
A chaque fois qu'un changement d'API incompatible a lieu, la trace de l'ancienne interface est gardée dans les sources de la bibliothèque et l'ancienne interface binaire continue à être créée dans les nouvelles versions du fichier libxxx.so.y.

En pratique cela signifie que les anciens programmes binaires vont continuer à fonctionner avec toutes les nouvelles versions de la bibliothèque. Il n'y a plus besoin de partir à la recherche d'une libc.so.4 pour faire tourner un vieux programme sur un système n'ayant qu'une libc.so.6 par exemple.

Unicode

La prise en charge d'unicode a été améliorée dans libedit.
En janvier 2015, Baptiste Daroussin a synchronisé libedit de FreeBSD avec la dernière version de NetBSD. Après cela, il a ajouté des patches pour corriger la lecture de lignes dans un environnement unicode.
Concrètement, cela a permis à sh(1) de fonctionner dans un environnement UTF-8. Merci à Baptiste d'avoir pris le temps d'identifier ces patches pour le bénéfice de DragonFly.

Divers

date(1) bénéficie désormais de l'option -R afin d'afficher en format compatible avec la RFC2822 (qui est l'équivalent de "%a, %d %b %Y %T %z" avec LC_TIME=C).

patch(1) reçoit l'alias --dry-run, équivalent à -C pour une compatibilité accrue avec GNU patch, svn patch et FreeBSD patch.

Le flag -b a été ajouté à camcontrol(8) devlist afin d'afficher les bus existants et leurs sims parents.

tail(1) bénéficie désormais d'une option -q qui permet de supprimer les en-têtes des noms de fichiers.

powerd(8) a reçu de nombreuses corrections et améliorations telles qu'une nouvelle option pour désactiver le mode turbo ou pour contrôler le seuil limite de la charge processeur ou encore l'arrêt d'urgence en cas de charge batterie très faible.

Divers outils ont été mis à jour:

  • OpenSSH 6.7p1
  • file 5.22
  • ftp 1.205 depuis NetBSD
  • sh a été synchronisé avec FreeBSD
  • mdocml 1.13.1
  • byacc 2014-10-06
  • less 471
  • bmake 2014-11-11
  • OpenSSL 1.0.1o
Divers Chargeur d'amorçage en couleur

La représentation artistique de Fred, la libellule du menu de démarrage, a été améliorée. La ligne entre Fred et le menu a été supprimée et le dessin amélioré. Fred est maintenant affiché en couleur par défaut, avec un thème bleu.

Un système de détection de console série a été ajouté afin de laisser le bootloader en noir et blanc et de ne pas polluer la console avec des codes couleur ansi dans ce cas.

/usr intégré dans la racine

L'installeur ne crée plus de système de fichier /usr séparé.

Utiliser un système de fichier /usr distinct de / n'a plus vraiment de sens à notre époque: les binaires de / et /usr sont tous dynamiquement liés et font tous partie du même système DragonFly de base.

C'est en plus dangereux: avec un système de fichier /usr séparé, les binaires statiques de secours de /usr/share/initrd ne peuvent pas être utilisés sans monter /usr en premier lieu.
Et comme mount(8) est un binaire dynamique, /usr ne pouvait plus être monté dans certaines situations…

Slider, un outil pour naviguer dans l'historique de HAMMER

Slider est un logiciel développé par John Marino. Il dispose d’une interface curses et est écrit en Ada. Sa première version a été annoncée sur la liste de diffusion en décembre.

Slider permet de :

  • naviguer parmi toutes les versions disponibles d’un fichier stocké dans l’historique d’HAMMER ;
  • de visualiser les différences entre deux versions (si c’est un fichier texte) ;
  • de restaurer une ancienne version du fichier ;
  • de récupérer un fichier effacé.

S’il est lancé sur un répertoire existant, tous les fichiers supprimés et sous-répertoires restaurables seront recherchés dans l'historique de ce répertoire et il sera possible de les restaurer.

Slider est disponible via dports, avec une documentation.

Suppression des page info

Les outils GNU texinfo ainsi que toutes les pages de documentation au format texinfo ont été supprimées. Ces pages n'étaient disponibles que pour les outils GNU et la majorité des informations est accessible via les pages de manuel.

Gestionnaire de service svc

Un gestionnaire de service, svc(8) a été créé. Il permet de lancer et gérer des services de façon robuste, d'obtenir le statut, loguer les messages récents etc…

svc(8) permet de gérer des listes de groupes, des uid, de construire et faire tourner le programme voulu dans un environnement chroot ou jail. Il permet également de nettoyer les descripteurs de fichier, les sockets et les fichiers pid utilisés lorsque le processus fils prend fin.

svc(8) utilise pour cela le nouvel appel système procctl(), permettant de gérer les sous-processus lancés par un processus donné et de s'assurer qu'ils sont tous tués correctement. Le programme parent se comporte ainsi de la même façon qu'init(8) mais pour un sous-ensemble limité de processus et non pas tous les programmes tournant sur la machine.

procctl(2) a été conçu pour être compatible avec l'appel système de même nom de FreeBSD, en discussion avec des développeurs FreeBSD. Il est prévu que FreeBSD implémente un gestionnaire de service compatible dans l'avenir.

Notes de mise à jour

La mise à jour vers DragonFly BSD 4.2 se fait de la manière habituelle :

cd /usr/src
git fetch origin
git branch DragonFly_RELEASE_4_2 origin/DragonFly_RELEASE_4_2
git checkout DragonFly_RELEASE_4_2
make buildworld && make buildkernel && make installkernel && make installworld

À noter toutefois qu'avec la suppression de sendmail de base, une étape supplémentaire est nécessaire pour configurer le MTA avant de lancer make upgrade. Si aucun MTA avancé n'est nécessaire, ce qui devrait être le cas pour la plupart des utilisateurs, DMA est recommandé et cette commande suffit à la configuration de base:

cp /usr/src/libexec/dma/mailer-conf/mailer.conf.dma /etc/mail/mailer.conf

Suite à quoi, il convient encore de lancer:

make upgrade

et enfin:

reboot

Si le système a redémarré correctement, il est conseillé de faire une sauvegarde de l'initrd de secours via :

make rescue

Télécharger ce contenu au format Epub

Lire les commentaires

ECMAScript 2015 est approuvé

29 juin, 2015 - 09:09

La spécification ECMAScript 6e édition a été approuvée le 17 juin 2015 sous le nom ECMAScript 2015.

Parmi les nouveautés, il faut noter l'arrivée des classes, des modules, des fonctions fléchées, des boucles for-of, des générateurs, des proxies et de plusieurs nouvelles méthodes.

Sommaire

Cette nouvelle édition permet de rattraper le retard face au JavaScript déjà implémenté dans les navigateurs. De ce fait, l'arrivée des mots clés const et let n'est pas si nouvelle. Par contre, la spécification ne correspond pas toujours aux implémentations, et certaines fonctionnalités devront être revues.

Constante et variable

La déclaration const permet de créer une constante nommée accessible uniquement en lecture.

const PI = 3.141593; PI > 3.0;

L'instruction let permet de déclarer une variable dont la portée est celle du bloc courant, éventuellement en initialisant sa valeur.

function letTest() { let x = 31; if (true) { let x = 71; // c'est une variable différente console.log(x); // 71 } console.log(x); // 31 } Classe

Durant le développement de la spécification, plusieurs propositions ont été élaborées pour la gestion des classes. La solution retenue est plutôt minimale. La classe contient un constructeur et des méthodes. L'héritage simple est géré. À cela s'ajoutent des méthodes get et set, et des membres statiques.

class Fruit { constructor (couleur) { this.couleur = couleur; } static choisirCouleur() { return ['rouge', 'jaune', 'bleu', 'vert', 'orange', 'mauve']; } toString () { return "fruit"; } } class Pomme extends Fruit { constructor (couleur, sorte) { super(couleur); this.sorte = sorte; } get saveur() { return this.sorte + " " + this.couleur; } toString () { return super.toString() + " : pomme"; } } let maPomme = new Pomme('jaune', 'Délicieuse'); Fonction fléchée

Une expression de fonction fléchée (arrow function en anglais) permet d'avoir une syntaxe plus courte que les expressions de fonction et permet de lier la valeur this de façon lexicale. Les fonctions fléchées sont obligatoirement anonymes.

Les fonction fléchées peuvent être utilisées suivant deux syntaxes différentes :

param => expression

qui est équivalente à

function(param) {return param.expression}

ou sous la forme

([param] [, param]) => {instructions}

qui est équivalente à

function([param] [, param]) { instructions }

Bien que la fonction fléchée soit nécessairement anonyme elle-même, elle peut néanmoins être mappée sur une variable.

var simple = a => a > 15 ? 15 : a; var complexe = (a, b) => { if (a > b) { return a; } else { return b; } }

Une fonction fléchée ne définit pas son propre this. Elle utilise celui disponible dans son contexte.

var robert = { _nom: "Robert", _amis: [], imprimerAmis() { this._amis.forEach(f => console.log(this._nom + " connaît " + f)); } } Affecter par décomposition

L'affectation par décomposition (destructuring en anglais) est une expression qui permet d'extraire des données d'un tableau ou d'un objet grâce à une syntaxe dont la forme ressemble à la structure du tableau ou de l'objet. La syntaxe est semblable à ce qu'offre Perl ou Python.

Décomposition d'un tableau var list = [ 1, 2, 3 ]; var [ a, , b ] = list; [ b, a ] = [ a, b ]; Décomposition d'un objet var o = {p: 42, q: true}; var {p, q} = o; console.log(p); // 42 console.log(q); // true var {p: toto, q: truc} = o; console.log(toto); // 42 console.log(truc); // true Opérateur de décomposition

L'opérateur de décomposition permet de développer une expression lorsque plusieurs arguments ou plusieurs éléments sont nécessaires.

var params = [ "salut", true, 7 ]; var other = [ 1, 2, ...params ]; // [ 1, 2, "salut", true, 7 ] f(1, 2, ...params) === 9; var str = "foo"; var chars = [ ...str ]; // [ "f", "o", "o" ] Paramètres

Un paramètre du reste permet de représenter un nombre indéfini d'arguments sous forme d'un tableau.

function f (x, y, ...a) { return (x + y) * a.length; } f(1, 2, "salut", true, 7) === 9;

Un paramètre par défaut permet d'initialiser des paramètres lors de l'appel de la fonction si la valeur passée est nulle (au sens où il n'y a aucune valeur de passée) ou undefined.

function f (x, y = 7, z = 42) { return x + y + z; } f(1) === 50; Décomposition

Les valeurs des tableaux et les propriétés des objets passés en paramètre à une fonction seront décomposées.

function f ([ name, val ]) { console.log(name, val); } function g ({ name: n, val: v }) { console.log(n, v); } function h ({ name, val }) { console.log(name, val); } f([ "bar", 42 ]); g({ name: "foo", val: 7 }); h({ name: "bar", val: 42 }); Nouvelles notations Raccourcis pour les noms de propriétés

Une notation raccourcie permet de créer une propriété qui porte le nom de sa variable d'origine.

var a = "toto", b = 42, c = {}; var o = { a, b, c }; Raccourcis pour les noms de méthodes

Une notation raccourcie permet de ne plus utiliser le mot-clé function.

var o = { property([parameters]) {}, get property() {}, set property(value) {}, * generator() {} }; Noms calculés pour les propriétés

Une expression entre crochets [] peut être calculée en tant que nom d'une propriété.

var prop = "toto"; var o = { [prop]: "hey", ["tr" + "uc"]: "ho" }; Itérateur

L'instruction for-of permet de créer une boucle qui parcourt un objet itérable.

let fibonacci = { [Symbol.iterator]() { let pre = 0, cur = 1; return { next () { [ pre, cur ] = [ cur, pre + cur ]; return { done: false, value: cur }; } }; } } for (let n of fibonacci) { if (n > 1000) break; console.log(n); } Générateur

Un générateur est une fonction qu'il est possible de quitter puis de reprendre. Le contexte d'un générateur (les liaisons avec ses variables) est sauvegardé entre les reprises successives.

function* range (start, end, step) { while (start < end) { yield start; start += step; } } for (let i of range(0, 10, 2)) { console.log(i); // 0, 2, 4, 6, 8 } Promise

L'objet Promise (pour « promesse ») est utilisé pour réaliser des opérations de façon asynchrone. Une promesse est dans un de ces états :

  • en attente : état initial, la promesse n'est ni remplie, ni rompue ;
  • tenue : l'opération a réussi ;
  • rompue : l'opération a échoué ;
  • acquittée : la promesse est tenue ou rompue mais elle n'est plus en attente.

Le constructeur de l'objet Promise prend en argument une fonction avec deux paramètres : resolve et reject. Si la promesse est tenue, on appelle la fonction resolve() avec le résultat. Si elle est rompue, on appelle la fonction reject() avec la raison.

var p1 = new Promise((resolve, reject) => { setTimeout(() => resolve(1), 1000); });

La méthode then() prend deux arguments qui sont deux fonctions callback à utiliser en cas de complétion ou d'échec de la Promise. Elle renvoie une Promise, on peut donc facilement enchaîner plusieurs appels à cette méthode.

p1.then((valeur) => { console.log(valeur); // 1 return valeur + 1; }).then((valeur) => { console.log(valeur); // 2 }); Module

Les modules permettent de créer de nouveaux espaces de noms, et ainsi limiter la pollution de l'espace de nom global.

Import // someApp.js import * as math from "lib/math"; console.log("2π = " + math.sum(math.pi, math.pi)); Export // lib/math.js export function sum (x, y) { return x + y }; export var pi = 3.141593; Réflexion Proxy

L'objet Proxy est utilisé afin de définir un comportement sur mesure pour certaines opérations fondamentales (par exemple, l'accès aux propriétés, les affectations, les énumérations, les appels de fonctions, etc.).

var handler = { get: function(cible, nom){ return nom in cible ? cible[nom] : 37; } }; var p = new Proxy({}, handler); p.a = 1; p.b = undefined; p.a === 1; p.b === undefined; 'c' in p === false; p.c === 37; Reflect

Reflect est un objet natif qui fournit des méthodes pour les opérations qui peuvent être interceptées (via les proxies). Reflect n'est pas une fonction (y compris pour construire un objet).

let obj = { a: 1 }; Object.defineProperty(obj, "b", { value: 2 }); obj[Symbol("c")] = 3; Reflect.ownKeys(obj); // [ "a", "b", Symbol(c) ] Nouvelles méthodes

Voici quelques exemples de nouvelles méthodes qui ont été ajoutées aux objets standards.

Object

La méthode Object.assign() est utilisée afin de copier les valeurs de toutes les propriétés directes (non héritées) d'un objet qui sont énumérables sur un autre objet cible.

var dst = { quux: 0 }; var src1 = { foo: 1, bar: 2 }; var src2 = { foo: 3, baz: 4 }; Object.assign(dst, src1, src2);

La méthode Object.setPrototypeOf() définit le prototype d'un objet donné avec un autre objet ou null.

function Parent(){} function Child(){} Object.setPrototypeOf(Child.prototype, Parent.prototype); new Child instanceof Child; // true new Child instanceof Parent; // true Array

La méthode find() renvoie une valeur contenue dans le tableau si un élément du tableau respecte une condition donnée par la fonction de test passée en argument.

[ 1, 3, 4, 2 ].find(x => x > 3); // 4 String

Les méthodes startsWith(), endsWith() et includes() renvoient un booléen indiquant, respectivement, si la chaîne de caractères commence par, se termine par ou contient la deuxième chaîne de caractères fournie en argument.

"hello".startsWith("ello", 1); // true "hello".endsWith("hell", 4); // true "hello".includes("ell"); // true "hello".includes("ell", 1); // true "hello".includes("ell", 2); // false

La méthode repeat() construit et renvoie une nouvelle chaîne de caractères qui contient le nombre de copies demandées de la chaîne de caractères sur laquelle la méthode a été appelée, concaténées les unes aux autres.

" ".repeat(4 * depth); "foo".repeat(3); Number

La méthode Number.isSafeInteger() permet de déterminer si la valeur, passée en argument, est un entier représentable correctement en ECMAScript (c'est-à-dire un nombre compris entre -(253 -1) et 253 -1).

Number.isSafeInteger(42) === true; Number.isSafeInteger(9007199254740992) === false; Autres fonctionnalités
  • Les nombres octaux et binaires sous une forme littérale
  • Les tableaux typés
  • Les gabarits de chaînes de caractères
  • Les objets Map et Set et leurs équivalents avec références faibles
  • Amélioration de la gestion de l'Unicode pour les chaînes de caractères et les expressions rationnelles

Il ne reste plus qu'à attendre que toutes ces nouveautés arrivent jusqu'à votre navigateur préféré.

Conversion

La conversion des nouveautés du ECMAScript 2015 vers le langage compris par les précédentes implémentations peut se faire à l'aide d'outils. Plusieurs nouveautés peuvent être implémentées par ECMAScript lui-même.

Compilateur

Il est possible de faire appel à un compilateur pour convertir les nouvelles fonctionnalités du langage vers du code compatible avec les anciennes implémentations. Il est plus facile de compiler le code depuis le serveur et envoyer seulement le résultat au client.

Babel est un de ces compilateurs. Tous les exemples proposés ici compilent avec Babel. Une application Web permet de tester ses connaissances depuis un navigateur sans installer quoi que ce soit. Par contre, elle ne traduit pas les nouvelles méthodes. Il faut faire appel à d'autres outils pour avoir une application fonctionnelle.

API

Des bibliothèques sont disponibles pour l'implémentation des nouvelles API.

core-js implémente les nouveaux objets et les nouvelles méthodes du langage. Elle s'utilise en complément d'un compilateur comme Babel.

Télécharger ce contenu au format Epub

Lire les commentaires

Apéro du libre à Rennes le jeudi 2 juillet 2015

28 juin, 2015 - 22:41

L'association Actux vous invite à un nouvel Apéro du Libre, jeudi 2 juillet 2015 à partir de 19h au Papier Timbré, au 39 rue de Dinan à Rennes.

L'apéro du libre est une rencontre conviviale autour d'un verre, pour discuter et faire connaissance entre utilisateurs de Logiciels Libres, débutants ou confirmés. L'apéro est traditionnellement ponctué d'un quizz autour du Libre.

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

Télécharger ce contenu au format Epub

Lire les commentaires

LinuxFr.org fête aujourd'hui ses 17 ans

28 juin, 2015 - 12:43

LinuxFr.org fête aujourd'hui 28 juin ses 17 ans : bon anniversaire LinuxFr.org ! Merci à tous ceux qui ont contribué et contribuent au succès du site : administration système, animation de l'espace de rédaction, développement, modération, dons, écriture de contenus, etc. Le meilleur moyen de nous dire merci est de proposer une dépêche ou d'en rédiger collaborativement dans l'espace de rédaction pour faire vivre le site.

Et en 17 ans, ça donne quoi ?

Côté chiffres, le site comporte plus de 93 500 contenus publiés (environ 35 000 journaux, 32 000 entrées de forum, 23 000 dépêches, 340 sondages, 70 pages de wiki), et plus de 1,59 million de commentaires.

On ne présente plus LinuxFr.org… On le célèbre Télécharger ce contenu au format Epub

Lire les commentaires

Entretien avec Jehan, développeur GIMP

27 juin, 2015 - 14:49

Nous avons la chance d’avoir quelques développeurs qui fréquentent LinuxFR.org, dont Jehan Pagès (Jehan) qui contribue à GIMP, le logiciel de retouche d’images que l’on ne présente plus et qui est en train de se faire beau en vue de la sortie de la version 2.10 (je parle du logiciel, pas de Jehan — quoique je ne sache pas précisément ce qu’est en train de faire Jehan à l’heure où je couche ces quelques lignes).

Jehan a accepté de répondre à quelques questions pour LinuxFr.org ; nous le remercions chaleureusement à la fois pour le temps consacré à cet entretien et pour son implication dans GIMP !

Bonjour, peux-tu te présenter en quelques mots ?

Je m’appelle Jehan. Ces dernières années, je me suis principalement défini comme un « vagabond » mais depuis environ un an, ce n’est plus vrai. Donc je ne sais plus trop comment me présenter autrement. Je suis un être humain. :-)

Comment définirais-tu ton rapport au logiciel libre, et comment es-tu entré en contact avec lui ?

J’étais dans une famille d’artistes, pour qui l’usage de l'ordinateur est très basique. À l’opposé donc du stéréotype du geek dont les parents sont eux-mêmes ingénieurs et qui a développé son premier logiciel à 7 ans en BASIC.
Mon premier contact avec un ordinateur fut en squattant l'Amiga de mon grand frère qui nous servait essentiellement de console de jeu, jusqu’à ce que l’alimentation crame (facilement réparable, mais on n’y connaissait rien, le vendeur de grande surface non plus et c’en est resté là : l’horreur de la société de consommation dans toute sa splendeur).

J’ai eu mon premier ordi au milieu du lycée, avec Windows, des logiciels crackés, et des jeux vidéos. En prépa j’ai rencontré un gars qui a contribué à changer ma vision de l’informatique. Il s’appelle Samuel (et fréquente LinuxFr.org sans commenter beaucoup, je crois qu’il en a marre des trolls !). Il me bassinait avec ce truc : « Linux ». Je pense que c’est la première fois que j’en entendais parler. Je ne devais même pas avoir idée qu’il existait autre chose que Windows sur PC (et Mac était juste une « autre sorte » d'ordi). Pendant un an, il m’a fait chier, mais j’ai tenu et lui disais d’arrêter de m’emmerder avec ça.
Plus tard, en fac d’info, tout était sous Linux. J’appelle Sam, je lui demande donc « un Linux ». Il me file un CD de Mandrake. J’avais le même vieil ordi depuis le lycée avec un petit disque, donc je vire Win et mets Mandrake en simple démarrage. Depuis je n’en suis pas revenu (enfin de GNU/Linux, pas de Mandrake bien sûr !). Et franchement je ne souhaite revenir à Windows comme OS principal pour rien au monde.
Avec le temps, j’ai découvert la philosophie derrière les Logiciels Libres. Et je pense que c’est ce qui m’a réellement conquis.

Au début, j’ai essayé de participer à quelques projets, avec plus ou moins de succès.

De nos jours mon rapport au LL est : si quelque chose ne me plaît pas ou est buggué, je fais un rapport de bug ; si mon rapport de bug n’a pas assez de priorité pour les développeurs, mais qu’il en a pour moi, je n’attends plus que quelqu’un le corrige. Je corrige moi-même et envoie upstream.

Quelles sont tes contributions à la future version 2.10 de GIMP  ?

Déjà des contributions tierces, c’est-à-dire sur d'autres projets utilisés par GIMP (dépendances), qui ne sont pas aussi visibles, mais tout aussi importantes. En effet, des fois, les bugs qui sont rapportés viennent d’une bibliothèque tierce. Donc, on ouvre un rapport de bug sur l’autre projet. Or, suivant ma philosophie "je corrige quand j’en ai assez d’attendre les autres", il m’est régulièrement arrivé de faire un patch par-ci, par-là. J’ai ainsi contribué sur glib, GTK+, Pango, Exiv2, GExiv2, poppler, libmypaint, gettext, fontconfig, même autoconf et, bien sûr, à babl et GEGL. Et pour tous ces projets, mes patchs sont dûs au fait que je développe sur GIMP.

Pas forcément grand-chose, des fois juste des améliorations sur leurs systèmes de build. Par exemple, quand nous avons intégré GExiv2 dans GIMP, ce dernier avait un Makefile fait main et un pkg-config cassé. Je leur ai donc proposé un système de compilation à base d'autotools, ce qui a notamment permis de compiler GExiv2 pour Windows, sans même toucher à une seule ligne de code (un des développeurs m'a dit avoir été étonné, car il n’avait jamais vraiment pensé à Windows en développant jusque-là et n’avait pas la moindre idée que ce serait aussi simple de cross-compiler leur code).

Et puis l'une des corrections tierces dont je suis le plus content est dans GTK+. Jusqu'en 2013, quand on déconnectait sa tablette graphique, GIMP plantait. C'est tout con, mais c'est horripilant. La tablette est branchée en USB, et on sait tous qu'avec le câble qui se balade, ou un coup de main malencontreux, déconnecter un périphérique USB (même une micro-coupure pour un centième de seconde) n'est pas rare. Cela faisait planter tout logiciel qui gérait des tablettes sous GTK+ 2.0, car la prise en charge du branchement à chaud de périphérique n'est disponible qu'a partir de la version 3.0 de GTK+. Or, avec GIMP ou MyPaint (tous deux logiciels de dessin en GTK+2) les gens qui utilisent une tablette sont légions. Et je vous parle pas de l'horreur de perte de travail pour un peintre numérique qui ne pense pas à sauver régulièrement !

Je n'ai pas ajouté la prise en charge du branchement à chaud sous GTK+ 2 (qui n'accepte pas de nouvelles fonctionnalités, juste des correctifs), mais j'ai au moins permis de contourner le problème. Maintenant ça ne plante plus !

Ensuite GIMP à proprement parler, ce serait assez dur de lister toutes mes contributions. L'une d'elle est que je suis désormais le mainteneur du greffon de prévisualisation d'animation. Mon but est d'en faire un greffon et une UI bien plus élaborée qui permettra de faire autre chose que des GIF de chatons, mais même aussi d'utiliser GIMP pour faire de la vraie animation professionnelle. C'est un travail en cours que j'espère pouvoir présenter bientôt.

Sinon j'ai aussi fait passer GIMP aux normes des répertoires XDG, j'ai amélioré le système de migration d'une version de GIMP à l'autre, ainsi que plusieurs problèmes de localisation (l'ordre des menus pour suivre les normes d'un langage RTL, la détection du langage sous Windows, la localisation des noms de langage dans leur propre langage…), des améliorations des onglets (leur permettre d'être réordonnés, de les avoir à gauche, droite, en bas…), j'ai intégré le code d'un contributeur externe permettant d'avoir une boîte de recherche contextuelle d'action (similaire au « menu-espace » de Blender), aidé à l'intégration des brosses MyPaint comme outil GIMP, ajouté une compression zlib (plutôt que RLE jusque-là) interne dans le format XCF, etc.

Je suis aussi l'un des rares développeurs qui va parfois corriger des bugs pour Windows (j'utilise ma licence en vente-liée essentiellement pour GIMP, avec un Windows en VM). Donc j'ai corrigé plusieurs bugs spécifiques à GIMP sous win.

Et puis, bien sûr, pas mal de corrections de bugs, dont des crashs/plantages. C'est pour moi un des points les plus importants et pourtant des plus ingrats. Ingrat, car tout le monde se plaint des bugs, mais personne ne remercie jamais un développeur pour une correction de bug. Combien d'utilisateurs m'ont félicité pour la fonctionnalité de peinture en miroir ! Par contre, très peu pour la correction des crashs lors du débranchement de tablette. :/

Et pourtant, je pense que j'ai contribué à améliorer la vie de bien plus d'utilisateurs par cette correction que je ne le ferai jamais par la peinture en miroir !

Un logiciel instable (c'est-à-dire qui plante très souvent. Tout logiciel peut avoir des plantages inattendus tant qu'ils sont rares), aussi bien soit-il au niveau fonctionnalités, est mauvais. Aussi simple que ça.

Comment es-tu devenu développeur sur ce projet ?

Je suis arrivé en cours de 2.8. La première fois que j'ai montré GIMP à Aryeom, qui l'utilise maintenant quotidiennement, il n'était pas rare du tout de le voir se planter lamentablement. Donc j'ai décidé de corriger. Ce que j'ai fait.

Assez rapidement on m'a donné les droits en écriture car j'ai fourni plusieurs correctifs que Mitch, le mainteneur, a estimé de bonne qualité. Un jour, en juste 1 ou 2 mois, il m'a dit en substance : "tu me donnes trop de boulot, je te donne les droits sur le dépôt". Et c'est ainsi que je suis devenu un développeur GIMP.

Tu as fait une demande de financement par les utilisateurs pour développer la fonctionnalité « Peinture en miroir », quelle a été ta démarche ?

J'aimerais pouvoir développer plus de Logiciel Libre, c'est-à-dire être payé pour cela. Au LGM à Madrid, j'ai vu la fonctionnalité "peinture en miroir" sur Krita, et me suis dit que ce ne devait pas être trop compliqué. J'ai fait un prototype vite fait, puis un peu plus tard j'ai fait une vidéo, me disant que cela me motiverait pour la développer vraiment. En vrai je crois avoir choisi la mauvaise fonctionnalité (elle ne m'intéresse pas tant que ça. Je l'avais juste sous la main), et surtout ne pas avoir visé assez haut pour me donner envie de la faire rapidement.
Au final j'ai pris plusieurs jours sur 2/3 semaines vers mars pour l'implémenter. J'aime vraiment faire du beau code, le plus générique possible, avec une architecture solide. J'ai donc transformé le cœur logique pour la peinture dans GIMP pour qu'il soit "multi-point". Bien que par défaut, il n'y ait qu'un seul point (sous le pointeur), il est maintenant possible de peindre plusieurs points simultanément, selon toute transformation mathématique qui passe par la tête (permettant de transformer les coordonnées, mais aussi la brosse). Sur la base de ce nouveau cœur, j'ai ajouté un module de peinture en mirroir (par rapport à des axes), ainsi qu'une peinture en rotation (par rapport à un point), et une peinture en tuiles (par translations multiples).

Quelles sont les autres personnes derrière GIMP ?

GIMP est un des fanions du Libre, à n'en pas douter. Néanmoins contrairement (quoique…) à d'autres gros projets Libres, le projet GIMP a un problème de sous-effectif et une organisation bien plus informelle. Ainsi, là où beaucoup de projets se regroupent sous une fondation, une association, voire une société, GIMP n'a aucune entité officielle. Il n'y a pas non plus de marque GIMP. C'est un projet à la structure totalement informelle, comme le sont en général les projets libres de petite taille.

Pour tout ce qui nécessite un nom plus officiel, par exemple afin de recevoir des dons aisément, le projet GIMP est sous le parapluie de la fondation GNOME. Ainsi GNOME gère les finances de GIMP et héberge plusieurs de ses serveurs, ainsi que ses sources et son suivi de bugs. Néanmoins, le projet GIMP ne peut pas vraiment être considéré comme un projet GNOME. Il s'agit davantage d'une relation symbiotique où GNOME fait une faveur à un plus petit projet frère qui partage de nombreuses briques de base. Notamment, il est à rappeler que GTK+, le toolkit graphique à la base de GNOME, vient originellement du projet GIMP (GTK+ signifie « GIMP ToolKit »). Bien sûr, avec tant en commun, le projet GIMP suit de près les recommandations et évolutions GNOME, si possible, et les standards des bureaux Libres, tout en restant séparé. Ainsi GIMP n'a aucune dépendance à l'infrastructure GNOME (installer GIMP ne requiert pas l'environnement et le bureau GNOME) et est considéré comme indépendant.

GIMP a extrêmement peu de contributeurs actifs, en particulier pour un projet de cette taille. Ainsi, si on regarde les statistiques de contributions, on se rend compte qu'un unique contributeur, Michael Natterer (Mitch), a fait plus de 60 % des commits sur la dernière année, suivi de quelques contributeurs actifs mais bien moins productifs (comme moi, avec pourtant seulement 4% des commits, je suis le second développeur C si on regarde sur un an!) et enfin énormément de contributeurs avec des patchs uniques. Mitch est bien entendu le mainteneur du projet GIMP.
Néanmoins quand on considère GIMP, il faut dorénavant aussi prendre en compte GEGL et babl, briques désormais essentielles, dont Øyvind Kolås (Pippin) et Daniel Sabo sont les mainteneurs. Les trois projets ont bien entendu beaucoup de développeurs en commun, bien que certains se concentrent clairement plus d'un côté ou l'autre.

Beaucoup de contributeurs beaucoup moins actifs dorénavant au niveau du code restent impliqués pour les décisions ou communautairement. Michael Schumacher par exemple est clairement l'administrateur de GIMP, s'occupant de toute tâche administrative (comme la gestion financière, les relations publiques ou notre relation avec GNOME).

Il est aussi à noter qu'à l'heure actuelle, aucun développeur n'est payé pour améliorer GIMP, à notre connaissance, pas même indirectement (je ne parle pas de mini-financements ponctuels, mais de développeurs à temps plein ou partiel sur du long terme).

Les développeurs GIMP ont très peu de rencontres physiques (le principal point de rencontre est le canal irc #gimp sur irc.gimp.org). Néanmoins, l'un des évènements désormais phare du projet est le Libre Graphics Meeting, chaque année, pour lequel GIMP est un sponsor majeur (sponsoriser l'évènement et défrayer les contributeurs est quasiment la seule grande dépense annuelle du projet). C'est l'occasion pour les contributeurs principaux de GIMP de pouvoir se rencontrer chaque année, et discuter du projet de vive voix. GIMP fait venir des contributeurs du monde entier, pour certains depuis des zones aussi lointaines que le Brésil, Israël et la Nouvelle-Zélande.
Ci-dessous un aperçu d'une réunion de développeurs à l'université de Leipzig, en Allemagne, en mars 2014, lors de LGM 2014.


Puis à Montréal à l'université de Toronto, au Canada, pour LGM 2015:

Comment GIMP tire-t-il parti du Google Summer of Code ?

GIMP a été régulièrement un projet mentor du Google Summer of Code, mais l'an dernier, le projet n'a pas été accepté et cette année, je crois qu'on n'a même pas essayé (sauf erreur, puisque je n'ai pas suivi).

Je pense que GSoC est une contribution intéressante et, en même temps, il faut relativiser l'apport. En général les résultats ne sont pas de qualité adéquate pour finir immédiatement dans l'arbre de développement de GIMP et ce même si le projet étudiant est qualifié de « succès » (l'étudiant a bien travaillé et il serait injuste de le faire échouer, mais le résultat final n'est pas pour autant d'une qualité suffisante pour intégration immédiate). Dans tous les cas, il reste beaucoup de travail d'intégration, de revue et d'assurance qualité une fois les projets achevés, ce qui est surtout un problème quand les étudiants disparaissent une fois la récompense empochée, ce qui n'est pas si rare (ce n'est pas non plus un reproche. Les étudiants ne promettent pas de rester, même si c'est bien sûr le secret espoir d'un projet Libre).
Ainsi même les projets GSoC les plus éblouissants en démo vont prendre des mois, voire des années à être intégrés, pour atteindre le seuil de qualité adéquate.
Ensuite cela serait moins un problème s'il y avait beaucoup de développeurs permanents, ce qui permettrait de faire beaucoup plus de revues de code, mais comme je le disais, on est au final très peu sur GIMP.

Néanmoins, le Google Summer of Code reste un apport intéressant pour les projets. Cela apporte du sang frais et des fonctionnalités inédites. J'espère personnellement que nous serons de nouveau dans la liste des organisations mentor un jour.

GIMP n’a pas été retenu parmi les projets participants au GSoC cette année : sait-on comment s’opère la sélection ?

J'ai demandé aux autres développeurs, un jour, et ils savaient pas non plus a priori. Les critères de sélection sont non divulgués par Google, il me semble. Donc non, je sais pas. Si je devais m'aventurer à deviner, je dirais que GIMP perd un peu de son aura ces dernières années car on n'a pas assez de sorties (trop espacées). Donc de l'extérieur, le projet peut avoir l'air mort, ce qui n'est pas du tout le cas. Une autre raison possible serait que notre propre intérêt pour le GSoC s'est affaibli. Comme je disais plus haut, plusieurs développeurs ont vu les limites du programme Google, et aussi ont peut-être estimé que leur temps pouvait être mieux utilisé plutôt qu'encadrer des étudiants pour du code qu'on n'est pas sûr d'utiliser. En tous les cas, au final, on n'avait que deux mentors intéressés l'an dernier (moi notamment car je n'y avais jamais participé et que ça m'intéressait de voir l'envers du décor) et — sauf erreur — seulement un cette année (pas moi cette fois, je n'avais pas le temps).
Peut-être que Google a vu cela (nos listes de diffusion et discussions étant publiques), et a préféré donner du financement pour des projets plus à fond sur le programme ?

Depuis des années, GIMP possède un système de greffons (plug-ins) ayant permis de nombreuses contributions extérieures au projet. Avec l’arrivée de GEGL, comment vois-tu ce système de greffon évoluer ? Risque-t-on de perdre l’immense base de greffons existants ?

Dans GIMP 2.10, tout greffon qui marche en 2.8 est censé continuer à marcher. On reste dans la lignée de GIMP 2, donc la compatibilité est assurée. Si ce n'est pas le cas, alors il y a un bug, et dans ce cas faites-vous plaisir : remplissez des rapports de bug !

GIMP 3 par contre (future version majeure de GIMP qui suivra 2.10) pourra entraîner des changements d'API. Je ne suis pas certain lesquels, mais globalement je pense que les fonctions “dépréciées” à l'heure actuelle pourraient alors être retirées.

GEGL deviendra alors le moteur de GIMP pour tout ce qui touche aux données bitmap. Il est donc possible que certaines fonctions qui donnaient accès aux données bitmap à un autre niveau disparaissent dans GIMP 3.0. Mais ça ne voudra absolument pas dire que le développeur de greffons devra absolument passer par des nœuds GEGL pour modifier les images. Développer une opération GEGL est la voie préférée et conseillée dans lequel le projet GIMP se dirige à la place de greffons de type "filtres", mais les buffers GEGL ne sont pas des structures opaques, et sont accessibles aux greffons. Un développeur de greffons pourra tout à fait récupérer les données bitmap bruts, les modifier comme il faisait avant, puis les remettre dans le buffer. Il pourrait donc y avoir un peu de réécriture de code, mais rien d'insurmontable, et rien d'anormal pour un passage de version 2 à 3 ! Simplement ils ne pourront alors pas profiter de toutes les supers fonctionnalités permises par GEGL (visualisation directe sur le canvas, même partielle, édition non destructrice, création de graphes d'effets qui pourraient être réutilisés sur de multiples d'images sources, etc.).

Ensuite je ne suis pas le plus grand expert de GEGL chez GIMP (donc je peux dire des erreurs aussi), mais c'est ce qui ressort de ma petite expérience à manipuler l'API GEGL et parce que ce sont des choses que j'ai aussi demandées au mainteneur.

Par contre les thèmes qui utilisent des icônes fait-maison directement risquent d'être cassés car on utilise maintenant le standard des thèmes d’icônes. Mais bon ce n'est pas le pire des cassages.

Personnellement ce qui m'intéresse bien plus serait d'avoir une vraie plateforme de diffusion et de gestion des greffons. À l'heure actuelle, installer un greffon est manuel : on trouve un bout de code ou une archive sur le net, on l'installe dans le bon répertoire, éventuellement on se heurte à des problèmes de droit, etc. Sans compter que l'on ne sait en général pas quelle version on a installée, donc les mises à jour sont inexistantes. Au final, comme tu dis, on a une immense base de greffons, mais les gens en utilisent très peu. Il y en a quelques uns qui sont très connus comme G'MIC, grâce à une équipe de développement active, aussi bien pour le développement que la communication du projet.
Mais tous ces petits greffons de quelques lignes, adaptés à certains cas d'usage très particuliers et qui pourraient vraiment sauver la vie (du moins la simplifier grandement) à certaines catégories d'utilisateurs ? Ceux-là sont perdus dans le grand internet, quelque part sur un serveur qui peut disparaître demain sans que personne s'en rende compte.
Le projet GIMP a un dépôt où les gens peuvent déposer des plugins, mais totalement envahi par le spam et le flood, donc l'enregistrement de nouveaux comptes est fermé depuis plus d'un an, sans compter que l'UI générale laisse clairement à désirer. J'aimerais qu'on ait une vraie plateforme de greffons, avec laquelle les utilisateurs pourraient installer, retirer et mettre à jour un greffon depuis GIMP même, avec de la sécurité (vérifications de code automatique et par des humains si nécessaire), un système de versionnement et de mise à jour des greffons, une spécification, etc.
De mon expérience en tant qu'utilisateur, Firefox et WordPress sont de très bons exemples avec une vraie plateforme de gestion et téléchargement des greffons, et j'aimerais qu'on y pioche des idées.

J'ai en fait le projet de travailler sur une telle plateforme (et ai même déjà des bouts de code "stashed" quelque part sur mon ordi) et ça pourrait être mon prochain gros projet. Mais j'attends déjà de voir comment mon projet actuel (film d'animation 2D libre "ZeMarmot") se passe. Si ça ne marche pas bien, je ne sais pas si je continuerai longtemps. Si ZeMarmot marche par contre, on pourrait voir une nouvelle proposition de financement pour cette plateforme dans quelques mois.

Comment vois-tu les interactions entre GIMP et les autres projets libres ?

Je pense personnellement que GIMP est un projet moteur du mouvement Libre, dont le but n'est pas uniquement de créer un logiciel, mais a suscité de nombreux autres projets. Il est ainsi à l'origine de briques essentielles comme GTK+ (qui est la base de nombreux programmes, que l'on aime ou non ce toolkit et son état actuel), et maintenant babl et GEGL, qui eux-mêmes seront à l'avenir — je pense — des briques majeures de nombreux autres projets. GIMP aussi participe activement aux discussions avec d'autres projets, et tente de suivre les standards pour un bureau de travail sain. Plutôt que de bosser dans son coin, la collaboration est clairement un créneau majeur, comme le montre l'intégration des brosses MyPaint, qui inaugure une ère nouvelle où les divers projets majeurs de l'image raster souhaitent collaborer et créer ensemble un format de partage des brosses entre applications.

Ceci sans parler du format OpenRaster, encore balbutiant et dont le développement est peu actif, mais qui pourrait être très important s'il va au bout des espérances, et dont GIMP est aussi un contributeur majeur pour la spécification.

C'est pourquoi, si vous avez le moindre problème avec GIMP, je conseillerai de faire un pas en avant et d'aider le projet, avec du code, du design ou de l'aide communautaire. Nous manquons de mains !

À ce propos, quel est ton avis sur GTK+ comme boite à outils pour interface graphique et ses évolutions ?

Personnellement je suis très peu intéressé par les guerres et trolls, etc. En fait je suis anti-spécialisé. Je m'intéresse à un peu tout, et le fait que je fais plus souvent du GTK+ dernièrement est essentiellement dû au fait que le hasard a voulu que les logiciels auxquels je me suis intéressé étaient en GTK+.
Hors cela, je n'aurais aucun problème à développer en Qt demain si le prochain programme qui me faisait de l'œil devait être en Qt, ou en quoi que ce soit d'autre.
Au final je fais avec ce que j'ai. Ce qui m'intéresse, c'est de faire quelque chose de bien. Le reste, c'est de la perte de temps.

Ensuite oui c'est pas parfait, et je m'y connais pas assez pour savoir comment c'est à côté, mais je doute qu'on change le toolkit de GIMP (surtout qu'il vient de GIMP !), donc bon. Plutôt que brasser du vent à rouspéter contre quelque chose qui ne changera pas, je fais avec; et franchement ce toolkit n'est pas si mal. :-)

Tout ça pour dire : GTK+, je m'en balance. C'est ce que je fais avec qui m'intéresse.

Qu'est-ce que tu aimerais (voir) changer/améliorer dans GIMP ou son développement, quels sont les prochains sujets et même les futurs enjeux pour GIMP ?

Au niveau fonctionnalité, mon gros chantier à l'heure actuelle, c'est l'animation, la peinture numérique et la consolidation de GIMP.
Mon prochain gros projet, c'est les plugins. Je l'ai déjà dit plus haut. Je pense que c'est vraiment important qu'on ait une plateforme saine et cela devrait vraiment apporter un renouveau.

Ensuite il y a toute la partie "édition non destructrice" qui sera un bond majeur dans la manière dont les gens travaillent l'image avec les logiciels Libres.

Un autre point majeur est le design et l'interface utilisateur de GIMP qui souffre de sa vieillesse. GIMP se traîne des casseroles dues essentiellement à son âge (20 ans cette année !) et ce serait vraiment un projet très important, non seulement pour l'image du logiciel, mais surtout pour améliorer la simplicité d'utilisation. À vrai dire on a un tel projet avec Aryeom, et elle pense démarrer un groupe de design et UI pour GIMP dans l'année à venir.

Enfin un dernier gros point qui me chagrine est le cycle de sortie du projet : il est trop long. Ceci est aussi dû à l'âge du projet, d'une époque où on laissait les choses mûrir des années et où les utilisateurs compilaient eux-mêmes quand ils souhaitaient le logiciel plus vite. Mais de nos jours, il faut sortir plus vite, et passer à un cycle de sortie rapide. On devrait être capable de faire une sortie rapidement pour juste quelques corrections de bug, mais aussi pour des fonctionnalités. C'est quand même triste qu'on doive attendre des années pour utiliser des fonctionnalités qui sont déjà implémentées dans l'arbre de développement.

Comment s'établit la feuille de route ?

La feuille de route s'établit essentiellement par discussion. Les divers développeurs discutent, que ce soit sur IRC ou physiquement (sans sortir les poings !) lors de rencontres telles que Libre Graphics Meeting, et choisissent de ce qui est prioritaire ou non.
Ensuite le reste, c'est aussi l'intérêt personnel. Si quelque chose est prioritaire pour moi, je le développe, le soumet à revue et c'est intégré même si c'était une basse priorité dans notre feuille de route.

Contribues-tu également à d'autres logiciels ? As-tu des projets en rapport avec le logiciel libre dans un futur proche ?

Oui, comme j'expliquais, quand je rencontre un problème ou un manque, mon premier réflexe est de chercher s'il n'existe déjà pas une solution, puis d'ouvrir un rapport de bug (ou demande de fonctionnalité) et enfin de corriger/implémenter moi-même s'il le faut (en estimant bien entendu le temps que j'y passerai comparativement avec mon désir d'avoir le bug corrigé ou la fonctionnalité disponible).
Donc j'ai déjà des patchs dans une trentaine de projets d'après OpenHub, et encore ce site ne compte pas tous les projets auxquels j'ai contribué sans le nom en auteur, notamment parce qu'ils utilisaient un dépôt de source qui n'a pas de concept d'auteur vs. committer, comme le vieillissant SVN. Ainsi j'ai par exemple deux patchs dans Blender (qui utilise git maintenant mais utilisait svn à l'époque où j'ai fourni ces patchs) et dans de nombreux autres logiciels dont je ne me souviens probablement même plus avoir fourni un patch.

Sinon j'ai créé l'outil crossroad, initialement justement pour cross-compiler GIMP pour Windows depuis GNU/Linux (c'est tellement horrible d'essayer de compiler des logiciels sous environnement Windows alors que c'est si simple sous GNU/Linux !).

Enfin, je pense que vous avez tous entendu parler ici de ZeMarmot, un film d'animation Libre (Creative Commons BY-SA) en 2D, dessiné avec GIMP, édité avec Blender et Ardour. Dans ce contexte, je vais continuer à développer pour GIMP, mais aussi je vais travailler sur un nouveau logiciel pour la gestion d'un projet de film d'animation. Et ce sera cool. :-)
D'ailleurs notre financement n'est pas terminé puisqu'on a eu droit à une prolongation de la plateforme. Donc si quelqu'un lit cet entretien, et souhaiterait contribuer, ce qui aidera à améliorer GIMP et d'autres logiciels Libres, vous êtes les bienvenus!.

Pour ZeMarmot justement, tu utiliseras certainement beaucoup GIMP. GIMP est souvent vu comme un logiciel de retouche alors que Krita est présenté comme adapté à la peinture numérique… Quelle est ton opinion au sujet de ces deux logiciels et des outils de travail proposés ?

Oui c'est une image de GIMP qui est selon moi totalement erronée. GIMP est très générique (le 'G' signifiait d'ailleurs "General" avant d'être renommé pour signifier "GNU" à la place) et est fait notamment pour de la retouche photographique en effet, aussi bien que pour de la composition d'image, et de la création d'image, c'est-à-dire dessin, peinture… Cf. la description officielle:

GIMP is the GNU Image Manipulation Program. It is a freely distributed piece of software for such tasks as photo retouching, image composition and image authoring.

Bien sûr, d'autres logiciels ont décidé de se spécialiser dans le dessin numérique, comme Krita ou MyPaint, tous deux de très bons logiciels d'ailleurs. C'est un choix totalement valide, mais au final on voit que ces derniers se mettent à recouper des utilisations de retouche photo et autre, avec des filtres, etc. Comme quoi tout est lié dans l'image et vouloir être mono-utilisation seulement a peut-être ses limites ?

Pour moi, aussi bien MyPaint, que Krita ou GIMP sont valables pour la peinture numérique. D'ailleurs je pense que les dessins d'Aryeom en sont la preuve, non ? Et elle n'est pas seule. Sur le web, on trouve de nombreuses perles, des dessins sous GIMP vraiment superbes techniquement. Maintenant c'est sûr que GIMP est 1000 fois moins fort en marketing que Krita, surtout ces dernières années où son mainteneur a décidé d'en vivre et fait donc très fort pour promouvoir ce dernier (ce qui lui a valu une bonne accélération, et c'est vraiment cool). Clairement GIMP a des progrès à faire du côté "marketing".
Au final il est juste dommage que certaines personnes veuillent absolument reléguer GIMP à une partie seulement de ces capacités, et certains exprès, j'ai l'impression malheureusement. Des fois j'ai l'impression de voir les fans de Krita cracher sur GIMP et je ne comprends vraiment pas le but. Deux logiciels Libres ne peuvent-ils pas vivre en paix côte à côte?

En conclusion: GIMP est un très bon logiciel de dessin/peinture numérique, qu'on se le dise!

Je conclus donc avec l'affiche de notre film ci-dessous (que vous connaissez déjà ici) comme exemple, dessinée entièrement avec GIMP; désolé si vous vous dites que j'en fais trop! :p

Quels distribution et environnement graphique utilises‐tu ?

J'ai été longtemps utilisateur Mandrake, puis Mandriva, puis Mageia. J'ai abandonné Mageia car j'avais trop de petits problèmes (petits, mais à force, ça devient majeur) qui rendaient mon utilisation quotidienne de plus en plus désagréable et malheureusement mes rapports de bug n'étaient quasiment jamais traités et simplement fermés lors d'une montée de version (j'aurais pu chercher pour corriger moi-même mais comme je disais plus haut, il faut quand même estimer le temps qu'on y passera et la priorité. Or là, c'était beaucoup plus simple de passer sur une autre distribution, donc priorité basse. Désolé aux contributeurs de Mageia du coin !). Dernièrement j'ai surtout utilisé Linux Mint (depuis plus d'un an), et globalement cela se passe bien. C'est tout de même une distribution bien maintenue et ficelée. Je n'ai plus aucun des problèmes que j'avais sous Mageia notamment. Ensuite elle manque de trucs excitants à mon goût. Je voudrais au moins tester GNOME 3 (et sous Mint, installer GNOME 3 tient du parcours du combattant à priori), donc je suis en train de considérer le passage à Fedora pour la première fois. Aucune idée si j'y resterai.

Sinon j'ai testé un peu Ubuntu à une époque, pas accroché du tout. Mon grand amour au niveau stabilité et fonctionnalité fut Gentoo. La seule raison pour laquelle je n'y reviens pas est le temps que cela prend à mettre en place, à compiler chaque paquet, à peaufiner les détails, etc. En même temps, c'est peut-être grâce à cela que c'est une si bonne distribution. Mais je n'ai plus le courage de passer des heures juste pour avoir mon environnement (même s'il est super). Maintenant je préfère que tout marche direct, même si c'est moins marrant et avec moins de fonctionnalités dernier cri.

Environnement graphique : j'ai pas mal testé, du KDE, du GNOME (2), WindowMaker, ion3 pendant un bon moment aussi. Mon environnement graphique préféré fut Openbox, puis Openbox+Cairo-dock. Malheureusement là aussi je n'y suis pas resté à cause de détails ici ou là. C'est vraiment dommage, je pense que ce sont vraiment les détails qui changent tout dans l'utilisabilité d'une solution informatique.
À l'heure actuelle, je suis sur le Cinnammon par défaut de ma Linux Mint. Je n'y ai pas grand chose à redire, mais je n'en suis pas non plus fou et n'aurai pas de regret à le quitter.

Merci pour l’entretien et pour ta contribution à GIMP !

Et merci à vous pour les questions ! :-)

Télécharger ce contenu au format Epub

Lire les commentaires

Appel à contributions pour le Paris Open Source Summit #OSSParis15

26 juin, 2015 - 08:55

Pour rappel, le Paris Open Source Summit est né de la fusion de deux grands événements bien connus des libristes que sont l'Open World Forum et Solutions Linux. Il se tiendra les 18 et 19 novembre prochains.

Il y aura donc une grande partie exposition, dans laquelle nous retrouverons toutes les entreprises du secteur ainsi que le village des associations, mais aussi un grand cycle de conférences sur les deux jours. Et justement, l'équipe programme, dirigée cette année par Véronique Torner, vient de lancer son appel à contributions (ou CFP / Call for Paper) dont le thème cette année est Open for Innovation. Il est ouvert jusqu'au 17 juillet prochain.

Détails sur l'appel à contribution Open for Innovation

L’appel à contributions sera donc ouvert jusqu'au 17 juillet. Pour déposer une contribution, c'est sur le site dédié. Ceux qui ont l'habitude de Solutions Linux ne seront pas dépaysés.

Pour information, le comité de programme privilégiera les contributions qui mettent en avant des expériences d'utilisateurs et les innovations dans les domaines comme l'usine du futur, l'Internet des objets, l'eSanté, les transports, les collectivités locales, les systèmes d'information d'entreprise, la gestion de l'énergie et de l'environnement, l'agriculture, les médias et l'éducation.

Déclinaison de l'événement en 3 itinéraires

Cette édition proposera 3 itinéraires sous forme de conférences et de stands afin de s’Informer (Learn), découvrir (Discover), évaluer (Evaluate) et adopter (Adopt) les solutions, les tendances de fond et les révolutions proposées par les Logiciels Libres et Open Source et toute l’économie du monde Ouvert (l’Open Data, l’Open Innovation…) :

  • L’itinéraire Tech présentera les solutions du marché sous un angle technique : présentation des concepts, des produits, des technologies et des outils. Il s’adresse aux équipes techniques (directeur technique, architecte, expert, chef de projet, développeur ou exploitant…). Les intervenants sont les entreprises (offreurs ou sociétés utilisatrices), les communautés et les écoles ;
  • L’itinéraire Enterprise présentera les apports des Logiciels Libres et Open Source, sous un angle non technique. Il s’adresse aux décideurs du secteur privé ou public quelle que soit la taille ou le secteur d’activité. Les intervenants sont principalement les entreprises (offreurs ou sociétés utilisatrices), les associations et les syndicats professionnels.
  • L’itinéraire Society présentera les bénéfices et innovations non directement économiques. Il offre une tribune aux politiques, actions et pratiques (disruptives ou culturelles) représentatives de cette société ouverte et innovante (Open Data, Open Innovation, Privacy, Interoperability, Decentralization, Ethics). Les intervenants sont les politiques, les associations et les entreprises (offreurs ou sociétés utilisatrices).
Le comité de programme

Le comité de programme est présidé pour sa première édition par une des trop rares femmes (qui plus entrepreneur) du milieu du Libre, Véronique Torner, co-présidente d'Alter Way, qui sera entourée d’une équipe de cinq vice-présidents :

  • Pierre Baudracco, VP Tech, président de la société Bluemind ;
  • Gregory Bécue, VP Enterprise, directeur associé et membre du comité exécutif de la société Smile ;
  • Noël Cavaliere, VP User, Expert et responsable IT Technical Architecture and Data Management de PSA ;
  • Benjamin Jean, VP Society, président de la société inno3 ;
  • Cédric Thomas, VP International, directeur général d’OW2.
Format des contributions

Les contributions sont attendues sous 4 formats :

  • Learn : conférences sur l'état de l'art
  • Discover : ateliers pratiques
  • Evaluate : tables rondes
  • Adopt : retours d'expériences
Et le village associatif ?

Beaucoup d'entre-vous posent la question du village associatif. Oui, il sera bien présent et une place lui est d'ores et déjà réservée (ainsi qu'à Pinpin, à condition qu'il y rentre et en reparte sur ses 2 pieds).

L'appel à stand se fera tout début septembre. Nous ferons aussi une place aux associations internationales. Cependant, il ne sera pas forcément plus grand que les autres années. Sachez que plus il y a d'entreprises exposantes, plus le village pourra prendre de l'ampleur. Si votre association est liée à (ou sponsorisée par) une ou plusieurs entreprises, incitez-les à venir exposer et/ou être sponsor. Pareil si vous travaillez dans une entreprise qui a un lien avec le Libre ! C'est le meilleur moyen de pérenniser l'événement et son sympathique village.

Télécharger ce contenu au format Epub

Lire les commentaires

Hackathon en ligne CodinGame les 27 et 28 juin 2015

25 juin, 2015 - 11:16

CodinGame organise un Hackathon en ligne "Code of The Rings" qui aura lieu du samedi 27 juin 2015 à 18h (heure de Paris) au dimanche 28 juin (18h).

Gratuite et ouverte aux développeurs du monde entier, la compétition se déroulera sur 24 heures.

Objectif : coder une solution à un problème donné et optimiser son programme le plus possible pour grimper dans le classement. Dans l'intervalle, il sera possible de jouer et soumettre son code autant que souhaité (pas de limitations, pas d'obligations).

Les participants pourront tenter de décrocher les lots offerts aux meilleurs du classement, et candidater pour des emplois ou des stages auprès des sociétés sponsors de l'évènement.

Les modalités de participation sont les suivantes :

  • Participation en ligne et gratuite
  • 23 langages de programmation disponibles (C/C++, C#, Java, Javascript, PHP, Python, Python 3, Perl, Go, Dart, Scala, Haskell, Objective-C, Pascal, Ruby, Bash, Groovy, Clojure, VB.NET, Lua, OCaml, F#)
  • Possibilité d'utiliser l'IDE en ligne de la plate-forme ou de coder dans son environnement de code favori
  • Prix à gagner pour le Top 10 du classement et pour les premiers dans chacun des 23 langages
  • 10+ sponsors proposant des postes en CDI
Télécharger ce contenu au format Epub

Lire les commentaires

Repas du Libre le 9 juillet 2015 aux RMLL de Beauvais

24 juin, 2015 - 14:05

Lors de chaque édition des RMLL un « repas du Libre » est organisé. L'édition de Beauvais respectera la tradition et est heureuse de pouvoir vous le proposer dans une salle prestigieuse.

Ce repas, moment convivial, festif et communautaire, se tiendra le jeudi 09 juillet au soir, dans la salle des mariages de la Mairie de Beauvais. Et bien que nous n'irons pas décrocher les magnifiques tapisseries historiques d'autres salles pour décorer celle-ci, vous ne regretterez pas ce cadre particulier, ni le menu proposé par un traiteur de qualité, au tarif doux de 20€.

Il vaut mieux réserver ! Pour cela, rendez vous sur la page adéquate. Entrez vos dates de séjour, l'interface vous proposera les choix possibles pour vos dates (hébergement et restauration ) Sélectionnez alors « Le Repas du Libre ».

Le menu est en seconde partie…

Le menu sera préparé par une entreprise d'insertion qui respecte les circuits courts, le traiteur Seson, et sera composé de :

  • entrées, assortiment de flamiques :
    • aux tomates fraîches au basilic et chèvre ;
    • à la tomme au foin et lardons ;
    • à la truite fumée et cresson du Valois ;
  • plat principal :
    • vannerie de charcuterie (jambon persillé, pâté en croûte picard, terrine de lapin, rôti de porc, rillettes) ;
    • assortiment de poissons fumés aux salicornes (truite, hareng, anguille) ;
  • accompagnements :
    • salade picarde au cresson (cresson, frisée, chicons, croûtons, lardons grillés, œufs durs, cerneaux de noix et petits dés de betterave) ;
    • rémoulade de céleri, pomme granny et chou rouge aux noisettes ;
    • salade de pommes de terre aux harengs, sauce à l’aneth ;
  • plateau de fromages de Picardie :
    • Bray picard, Fleur de Picardie, Maroilles de Thiérache, Rollot, Tomme picarde au foin, fromage de chèvre frais ou sec en fonction de la saison ;
  • desserts :
    • assortiment de 3 tartes de saison au choix : aux pommes et noix, au fromage frais à la menthe, aux fruits de saison.
Télécharger ce contenu au format Epub

Lire les commentaires

Revue de presse de l'April pour la semaine 25 de l'année 2015

23 juin, 2015 - 15:13

La revue de presse de l'April est régulièrement éditée par les membres de l'association. Elle couvre l'actualité de la presse en ligne, liée au logiciel libre. Il s'agit donc d'une sélection d'articles de presse et non de prises de position de l'association de promotion et de défense du logiciel libre.

Sommaire

[ZDNet France] Descente dans les forges des "makers"

Par Frédéric Charles, le samedi 20 juin 2015. Extrait:

Cette semaine GreenSI a visité un des lieux des "makers", Usine IO, une forge de l'ère numérique, où on réinvente la fabrication.

Lien vers l'article original: http://www.zdnet.fr/actualites/descente-dans-les-forges-des-makers-39821154.htm

[Silicon.fr] Open Source et administration: le CCNum rallume l’incendie

Par Reynald Fléchaux, le vendredi 19 juin 2015. Extrait:

Dans son rapport Ambition Numérique, le Conseil national du numérique préconise de donner la priorité au logiciel libre dans l’administration. Syntec Numérique et Afdel sont vent debout contre une proposition qui, à leurs yeux, sent un peu la naphtaline.

Lien vers l'article original: http://www.silicon.fr/open-source-administration-ccnum-rallume-incendie-119578.html

[madmoiZelle] «Faut-il apprendre à coder aux enfants?», une conférence pertinente sur une problématique d’actualité

Par Sarah Bocelli, le jeudi 18 juin 2015. Extrait:

À l’occasion de la sortie de Scratch pour les Kids, un manuel d’initiation informatique, les éditions Eyrolles et Mozilla ont organisé une conférence autour d’un thème d’actualité: faut-il apprendre à coder aux enfants?

Lien vers l'article original: http://www.madmoizelle.com/apprendre-coder-enfants-conference-382905

[UP] Ordis partagés, ordis libérés!

Par Jeanne La Prairie, le jeudi 18 juin 2015. Extrait:

Les logiciels libres, gratuits, créés par des communautés de chercheurs et de passionnés, permettent à certains d'accéder à l'informatique. Rencontre avec les geeks activistes qui luttent contre le gâchis et la précarité numérique en redonnant vie aux vieilles machines.

Lien vers l'article original: http://www.up-inspirer.fr/magazine/150618401-ordis-partages-ordis-liberes

[Contrepoints] Le mouvement du logiciel libre: sentinelle des libertés en ligne

Par Farid Gueham, le mercredi 17 juin 2015. Extrait:

«Il faut alerter vos sénateurs contre le flicage généralisé!» Richard Stallman

Lien vers l'article original: http://www.contrepoints.org/2015/06/17/211181-le-mouvement-du-logiciel-libre-sentinelle-des-libertes-en-ligne

[L'OBS] Axelle ma sœur Axelle, ou la lente gestation de la loi sur le numérique

Par Andréa Fradin et Rémi Noyon, le mercredi 17 juin 2015. Extrait:

Manuel Valls présente ce jeudi la «stratégie numérique» de la France. L’un des aspects devrait être la loi Lemaire. Cela fait des mois qu’on l’attend. Why darling?

Lien vers l'article original: http://rue89.nouvelobs.com/2015/06/17/axelle-soeur-axelle-lente-gestation-loi-numerique-259787

Et aussi:

[ITespresso] Futur en Seine 2015: carrefour du crowdfunding et des monnaies virtuelles

Par Clément Bohic, le mercredi 17 juin 2015. Extrait:

Quels sont les marqueurs de Futur en Seine 2015? Finance 2.0, robotique, impression 3D, crypto-monnaies, objets connectés…Petite visite sur place.

Lien vers l'article original: http://www.itespresso.fr/futur-en-seine-2015-carrefour-crowdfunding-monnaies-virtuelles-98958.html

Télécharger ce contenu au format Epub

Lire les commentaires

Atelier CLI : CryptoParty mardi 23 juin ⌚ 20h ⌘ Bègles (~Bordeaux)

23 juin, 2015 - 15:00

Les Crypto-Party (ou chiffro-fêtes) consistent en l'organisation d'ateliers gratuits à destination de tous, pour découvrir, comprendre et utiliser les principes de base de la cryptographie et de la protection de sa vie privée sur les réseaux (web, chat, email).

Programme

Mardi 23 juin, c'est cryptoparty toute la soirée / nuit au L@Bx. Entrée libre et gratuite. Amenez à manger, à boire et sac de couchage pour les plus courageux.

Tous les détails en seconde partie.

Quelques idées d'ateliers :
  • Créations / échanges de clés GPG ;
  • Gérer et protéger ses mots de passe avec Keepass/KeepassX ;
  • Chiffrement de disque dur avec LVM+LUKS, encfs, etc. ;
  • Mise en place d'un serveur de courriel OpenSMTPd ;
  • Traduction du handbook cryptoparty en se basant sur le travail du Tetalab ;
Infos pratiques

Pour rappel, le L@Bx est un Hackerspace à Bègles (Bordeaux Métropole). Il ouvre ses portes tous les mardis et vendredis soir.

Télécharger ce contenu au format Epub

Lire les commentaires

Kernel Recipes 4e édition, à Paris du 30 septembre au 2 octobre 2015, réservez vos dates !

23 juin, 2015 - 14:58

Pour cette 4ème édition, et à la demande des participants, 3 jours de conférences sur le noyau Linux au coeur de Paris : mercredi 30 septembre, jeudi 1er et vendredi 2 octobre. Le format a été conservé : une seule salle, une audience d'une centaine de personnes, ce qui laisse la part belle aux interactions entre participants et avec les intervenants.

Cette année encore, nous vous avons concocté un programme de conférences qui balaie les actualités et les fondamentaux du projet kernel.org : organisation du projet, aller plus loin dans les sous-systèmes, virtualisation, développement, embarqué…

Parmi les intervenants attendus, Greg Kroah-Hartman (Linux Foundation), Willy Tarreau (HaproxyTech), Jens Axboe (Facebook), Francois Romieux, Kevin Hilman (Linaro), Mike Turquette (BayLibre), Eric Leblond (Stamus Network), Hans Verkuil (Cisco), David Woodhouse (Intel), Jan Kara (SUSE), Frédéric Weisbecker (Red Hat), Stefan Hajnoczi (Red Hat), Bruno Cornec (HP), William Dauchy (Gandi), Yves-Alexis Perez (ANSSI). Le programme est en cours de finalisation.

Cette année, Greg KH vous proposera de découvrir les arcanes du processus de release (publication) du kernel avec en prime une publication en "direct" d'un kernel stable.

En plus des conférences, nous avons réservé une heure chaque jour pour permettre aux participants de venir présenter en maximum 20 minutes un développement, un projet, une expérience relatifs au noyau Linux. Vous pouvez dès maintenant soumettre votre proposition. Si elle est acceptée, vous serez bien sûr inscrits d'office pour cette édition.

Comme pour les autres éditions, un dîner est prévu pour ceux qui le souhaitent pour poursuivre les échanges ainsi que quelques surprises conviviales autour de l'événement.

Nous tenons à remercier l'ensemble des sponsors qui nous ont fait confiance encore cette année : Gandi notre partenaire et sponsor de la première heure, Mozilla qui nous accueille dans des locaux inoubliables, SUSE, Parrot, BayLibre et HaproxyTech.

Les inscriptions seront ouvertes sur le site de la conférence à partir du 1er septembre 2015.

Télécharger ce contenu au format Epub

Lire les commentaires

Devede NG 4, pour créer vos DVD vidéo

22 juin, 2015 - 21:46

Devede est un logiciel qui permet de créer des DVD vidéo simplement, mais aussi de créer des fichiers DivX/Xvid pouvant être lus par une large gamme d'appareils1 et dorénavant aussi des fichiers MKV avec vidéo au format H.2642 pour une compression plus efficace, entre autres.

L'auteur (Sergio Costas Rodriguez aussi appelé Raster Software Vigo) a entrepris une réécriture complète de son logiciel à partir de zéro permettant d'envisager de nouvelles fonctionnalités à l'avenir. En outre la nouvelle version s'appuie sur Python 3 et GTK+3.

Cette nouvelle version majeure qui a pour nom Devede NG 4 (pour New Generation) est sortie le 26 avril dernier, et Christian Marillat a eu la gentillesse de l'ajouter pas plus tard que ce jour à son dépôt Debian Multimédia.

  1. consistant en un conteneur AVI avec la vidéo en MPEG-4 partie 2 aka MPEG-4 ASP pour Advanced Simple Profile, et l'audio en MP3 

  2. c'est-à-dire en MPEG-4 partie 10 aka MPEG AVC, pour Advanced Video Codec 

Pour terminer cette dépêche, citons quelques logiciels alternatifs pour le transcodage : Avidemux (dont le moteur a d'ailleurs été refondu à l'occasion de la version 2.6) et Transmageddon (dont la version 1.0 est sortie il y a à peine plus d'un an). Pour la création de DVD vidéo en revanche, je ne connais aucun logiciel qui fasse le job aussi simplement.

Merci à Raster Software Vigo et à Christian Marillat !

Télécharger ce contenu au format Epub

Lire les commentaires

Instantané sur le parallélisme et le code

22 juin, 2015 - 14:39

Avant, la fréquence des micro-processeurs semblait suivre une loi de Moore, mais à mesure que les limites physiques ont été approchées il a fallu innover, et le multi-cœur est devenu le standard, même sur mobile.

Développer une application qui sache utiliser plusieurs fils d’exécution ou processus en même temps n'est pas un problème forcément facile, pour lequel de nombreuses méthodes ont vu le jour. Ici, on vous propose une vision haut niveau de quelques idées du passé, mais surtout d'aujourd'hui, pour utiliser la puissance de nos machines sans écrire des bogues plus vite que nos ombres.

    Sommaire Exposé du problème

    Imaginez que vous deviez écrire et lire un même fichier dans deux processus différents. C'est notre cas simple de départ.

    Le cas trivial

    Dans ce cas, vos processus ne tournent jamais en même temps, ou alors aucun n'écrit quoi que ce soit sur le fichier et se contente de lire le fichier.
    Tout devrait marcher correctement.

    Le cas partagé

    Vos deux processus se mettent à tourner en même temps et ils ont carte blanche pour écrire ou supprimer le fichier.

    Il se peut que l'un des processus vérifie l'existence du fichier avant d'y écrire quelque chose, mais que l'autre processus l'efface juste après. Résultat : le premier processus va planter ou retourner une exception. Pourtant, le code aura l'air juste.

    Différence entre concurrence et parallélisme

    La concurrence est d'abord le fait de partager un bout de la mémoire avec plusieurs processus (ou fils d'exécutions).

    Le parallélisme consiste en l'exécution de plusieurs processus en même temps, sur des données disjointes.

    C'est une distinction qui est plus forte en anglais, puisque en français le parallélisme n'est qu'un type de concurrence. Mais la séparation des deux est pratique d'un point de vue pédagogique.

    Les verrous et sémaphores

    La première idée que l'on apprend consiste à mettre un cadenas sur l'espace mémoire partagé, avec une seule et même clé. C'est ce que l'on appelle un verrou. Les sémaphores ne sont que le cas où l'on fournit un nombre fini de clés supérieur à 1.

    En pseudo-code, ça ressemble souvent à ça :

    tant que verrou == 1: attend() verrou = 1 ## Je calcule ce dont j'ai besoin ici ## Et c'est assez long ## Puis je rend le verrou verrou = 0

    Avec deux processus, ça peut aller, mais quand le nombre augmente, il est très facile d'oublier de redonner la clé, et il est très facile de se retrouver avec des processus qui ne font qu'attendre une clé qui n'arrive jamais. Le nombre de cas différents à considérer augmente de manière factorielle avec le nombre de bouts de mémoires partagés.

    La quasi-totalité des langages de programmation vous laisseront faire ça.

    Le nombre élevé d'erreurs engendrées par cette technique a conduit à l'élaboration d'abstractions ou de manières de faire différentes.

    Le modèle à acteurs (et objets actifs)

    Dans les années 1970, une autre idée est apparue : au lieu de partager des zones mémoires et de bloquer de manière difficilement prévisible, pourquoi ne pas supposer qu'un processus est ce que l'on appelle un acteur, et qu'il ne peut communiquer avec d'autres acteurs que via des messages.

    Chaque acteur effectue une action demandée par le biais de messages.

    Erlang est le plus grand représentant de cette manière de faire. L'avantage est que la manière d'envoyer les messages permet de facilement parler à des processus sur le réseau, sans avoir rien de spécial à faire.

    L'autre avantage, c'est la possibilité de pouvoir déboguer beaucoup plus facilement, même s'il est toujours possible que le système se bloque si tout le monde se met à attendre.
    Enfin, si un acteur se plante, il peut simplement être relancé et n'impacte pas les autres acteurs.

    En pseudo-code, ça se passerait à peu près comme ça :

    # calcul_x étant une fonction quelconque, attendant 2 paramètres. mon_acteur = nouvel_acteur() resultat = envoyer_a(mon_acteur, calcul_x, parametre_1, parametre_2) # # Il est à noter que `resultat` n'est pas forcément calculé de manière synchrone # puisque `mon_acteur` fait peut-être autre chose, mais cette nouvelle demande est dans sa liste (ou boîte mél)

    Les objets actifs ne sont que de simples instances de classes, considérés comme des acteurs, ce qui s'insère très simplement dans la programmation objet : l'appel à une méthode se fait comme d'habitude, mais elle est transformée en message passé au-dit acteur à l’exécution, par exemple).

    À noter : Message Passing Interface (MPI), utilisé principalement au sein des supercalculateurs est un modèle de communication entre machines et leurs processus. Le modèle à acteur est transparent (c'est-à-dire qu'un acteur peut être sur la machine locale ou sur une autre machine). D'ailleurs, MPI peut être utilisé pour implémenter le modèle à acteur.

    Le modèle à acteur n'est qu'un exemple de la manière de penser de tout un pan de recherche basé sur l'algèbre de processus qui a le vent en poupe puisque c'est quelque chose de calqué sur des processus naturels dont on a l'habitude (comme les communications intercellulaires au sein d'un organisme).

    Je vous conseille d'essayer ça avec Erlang, Akka ou Quasar pour Java/Scala et Celluloid pour Ruby.

    Il est également possible de faire ça en Python grâce à Pykka par exemple (ou pulsar), SObjectizer ou CAF_C++ Actor Framework pour le C++, hactor pour Haskell.

    Mémoire transactionnelle logicielle (Software Transactional Memory — STM)

    Une autre idée est de se baser sur ce que font les bases de données, notamment en assurant l'atomicité des transactions : c'est l'idée de la mémoire transactionnelle (dans les années 80, sous le nom de Paratran)

    C'est-à-dire que la transaction commence lorsque vous ouvrez le fichier, et se termine quand vous avez fini d'écrire. Rien ne peut se passer sur le fichier avant que vous n'ayez fini.
    C'est une manière de cacher les mutex, mais c'est souvent implémenté sans verrous.

    De manière générale, cette technique est implémentée de manière optimiste, notamment dans Haskell, avec un type de variable spéciale : la TVar.

    L'idée étant que chaque processus utilisant une TVar le fait comme si ne rien n'était, à partir de la valeur de la TVar telle qu'elle était à la vérification.
    Puis, chaque modification de cette TVar est enregistrée dans un journal propre à chaque processus.

    En pseudo code, voici à quoi ça pourrait ressembler :

    bloc atomique: valeur = lire_TVAR(x) # on fait plein de chose, et la valeur change ecrire_TVAR(x, valeur) #fin bloc atomique

    À la fin du bloc atomique, la valeur de la TVar est lue et comparée à celle lue en début du bloc. Si cette valeur est identique, alors personne n'a modifié la TVar, et la nouvelle valeur est écrite de manière sûre. Dans le cas contraire, le bloc atomique est rejoué avec la nouvelle valeur de la TVar, d'où le nom optimiste.

    En Haskell, il est possible d'attendre une certaine valeur pour une TVar via un if et le « mot clé » retry : un signal est lié à la TVar, et sa valeur n'est re-vérifiée qu'après avoir été changée (programmation évènementielle). Tout ceci étant transparent pour le développeur. En pseudo-code, ça donne quelque chose comme ça :

    bloc atomique: valeur = lire_TVAR(x) si valeur > 0: retry # tout le bloc atomique sera ré-exécuté quand `valeur` aura changé. Ce qui bloque le processus. ecrire_TVAR(x, nouvelle_valeur) # fin bloc atomique

    Je vous conseille d'essayer ça en Haskell avec STM, en Java avec DeuceSTM ou avec Clojure.

    C'est également possible en C++ avec TinySTM, . Par contre, en Python, il faudra repasser.

    Voilà

    Vous avez pu entrevoir quelques techniques permettant de gérer la concurrence d'une manière moins traditionnelle, et vous êtes libres d'essayer tout ça si ça vous a plu.

    Les commentaires sont également là pour préciser des choses, ou discuter d'autres systèmes qui ne sont pas mentionnés dans cette dépêche.

    Télécharger ce contenu au format Epub

    Lire les commentaires

    Présentation d’Emmabuntüs au Zèbre à Lyon le 24 juin 2015

    22 juin, 2015 - 13:29

    Camarade novice en informatique n’aie pas peur, nos amis de l’association Eisenia te proposent de découvrir le mercredi 24 juin 2015 (de 15 à 21h) une présentation du système GNU/Linux Emmabuntüs à La coopérative du Zèbre, 22 rue Jean-Baptiste Say, 69001 Lyon.

    Au menu :

    • Présentation d’Emmabuntüs (Ordinateurs sous Emmabuntüs en libre accès)
    • Discussions autour du logiciel libre et de la réduction des déchets
    • Tu pourras même profiter de la terrasse de la coopérative du Zèbre

    Que tu sois débutant en informatique ou windowsien curieux, ou même linuxien déjà convaincu, viens essayer Emmabuntüs le mercredi 24 Juin !

    Télécharger ce contenu au format Epub

    Lire les commentaires

    Sortie de Mageia 5, la magie continue !

    21 juin, 2015 - 21:57

    Mageia est un système d’exploitation libre basé sur GNU/Linux, et porté en tant que projet communautaire par l’association loi 1901 Mageia.Org, cette dernière étant constituée de contributeurs élus.

    Le cinquième tour de Mageia est sortie le vendredi 19 juin 2015, proposant les dernières évolutions techniques, de nouvelles versions des bureaux et logiciels, tout en préservant la stabilité d’usage, et en conservant ses outils spécifiques de contrôle du système. Chaque version de Mageia est supportée 18 mois. Les mises à niveau entre versions sont supportées et aisées.

    Mageia a démarré en septembre 2010 comme un fork de Mandriva Linux.

    Elle a réuni des centaines de passionnés et plusieurs sociétés à travers le monde, qui coproduisent l’infrastructure, la distribution Mageia elle-même, sa documentation, sa diffusion et son assistance, à l’aide de logiciels libres.

    Depuis son lancement, elle a publié quatre versions majeures stables en juin 2011, mai 2012, mai 2013 et février 2014.

    Mageia est et reste référencée parmi les dix distributions les plus consultées sur Distrowatch.

    Sommaire

    Quoi de neuf ? Base du système Architectures

    Le code non utilisé gérant les architectures Alpha/IA64/PPC/SPARC a été retiré. Mageia se concentre sur l’architecture Intel, en 64 bits, et continue de fournir des compilations pour la version 32bits.

    BIOS & EFI, amorçage

    L’intégration de la gestion des BIOS EFI est opérationnelle via les media Live64 ou DVD64. L’intégration a été semée d’embûches, retardant la sortie de cette version.

    Grub2 (qui est optionnel) fonctionne mieux maintenant, et détecte les autres systèmes d’exploitation afin de les ajouter.

    Noyau Linux

    Mageia 5 embarque le noyau Linux 3.19 qui dispose dans cette version du support du DMA-BUF et de la gestion "fences" (nécessaire pour une bonne prise en charge d’Optimus & powerplay).

    Tout le matériel géré par ce noyau est fonctionnel et utilisable, notamment côté portables Toshiba. De gros progrès ont été reportés, ainsi que pour les écrans tactiles utilisant atmel_mxt_ts.

    Les tablettes Wacom et les pavés tactiles Synaptics fonctionnent maintenant mieux au cours de l’installation (bogue 11524).

    Nouveaux pilotes NVIDIA

    NVIDIA a abandonné la prise en charge pour son pilote le plus récent de la gamme suivante de puces : GeForce 8xxx, 9xxx et 100 à 415. En conséquence, un nouveau paquet NVIDIA a été créé pour ces cartes, maintenant appelé nvidia340.

    L’intégration pour ces cartes a été ajoutée à drakx11/XFdrake permettant une détection automatique du pilote approprié à votre matériel. De plus, si vous réalisez une mise à niveau, la configuration X.Org sera automatiquement ajustée par le service harddrake au premier démarrage.

    Partitions & systèmes de fichiers

    Le partitionnement GPT est maintenant utilisé par défaut, au lieu du disque complet LVM pour les disques supérieurs à 4 To.

    Btrfs est désormais pris en charge comme système de fichiers (mais ext4 reste celui par défaut). En le sélectionnant pour la partition /boot (ou / sans partition boot séparée), Grub2 sera automatiquement sélectionné et configuré.

    Système d’initialisation

    Systemd est fourni dans sa version 217 qui signe l’abandon des derniers outils sysvinit historiques.

    RPM, URPM & Gestion de paquets

    RPM a été mis à niveau en version 4.12.0.1.

    Nouvelle gestion des suggestions

    RPM apporte maintenant une prise en charge officielle des paquets suggérés, qui diffère de la mise en œuvre précédente. Les paquets utilisent dorénavant la nouvelle balise Recommends au lieu de l’ancienne balise Suggests. Enfin, le format des fichiers de synthèse dans les media a été légèrement modifié.

    Nouveau générateur de dépendances

    Pendant quelques années, RPM a pris en charge deux façons de générer les dépendances lors de la construction de paquets :

    • l’ancienne, dite générateurs externes
    • la nouvelle, dite générateurs internes

    La plupart des distributions ont basculé sur les nouveaux générateurs internes, mais Mageia utilisait toujours les anciens générateurs externes. La version 5 se met à la page avec de nombreux avantages à la clé comme :

    • La construction des paquets est plus rapide
    • La compatibilité des fichiers .spec avec les technologies Fedora (& Suse) s'en trouve améliorée
    • Les dépendances d’OCaml et d’autres technologies sont automatiques

    Pour de plus amples explications, vous pouvez lire :

    Le nouveau comportement a aussi demandé une modification du mécanisme d’exclusion de dépendances.

    Urpm

    Une limite codée en dur, empêchant la mise à jour de mga4 vers mga5 en raison de certains paquets ayant une liste longue de plus de 64 000 caractères, a été corrigée.

    Gurpmi va maintenant exécuter drakbug lorsqu’il se bloque ou rencontre des erreurs de segmentation, afin d’obtenir des rapports de bogue plus explicites.

    Les options urpmi inhérentes aux dépendances ont été renommées (--no-suggests devient --no-recommends) Les utilisateurs ont donc toujours à leur convenance cette possibilité de n’installer que le strict minimum, la distribution s’efforçant de réduire les dépendances nécessaires.

    Traduction & Documentations Localisation (l10n) / Internationalisation (i18n)

    Firefox et Thunderbird ont été modifiés pour installer automatiquement les bons paquets de langue -l10n-xx selon le paquet de langue installé locales-xx. Si plusieurs paquets de langues locales-xx sont installés, le bon paquet devrait être sélectionné suivant le langage principal configuré pour le système.

    Le paquet man-pages-de pour l’allemand a été corrigé : il contient maintenant plus de 530 pages de manuel au lieu de 0 comme précédemment (Merci à Mario Blaettermann pour le rapport et la correction de bogue).

    Documentation officielle

    Tous les paquets mageia-doc-installer-* et mageia-doc-mcc-* localisés ont été fignolés pour utiliser la capture d’écran correspondante à la langue du système.

    Les textes d’aide en ligne pour le programme d’installation traditionnel (non-Live) sont maintenant disponibles dans plus de 20 langues.

    Les textes d’aide pour les boutons d’aide dans le Centre de Contrôle Mageia mageia-doc-mcc* sont maintenant disponibles en plus de 15 langues.

    Bureaux & Environnements graphiques

    L’assistant MageiaWelcome démarre automatiquement dans la langue de l'utilisateur au lancement d’un bureau pour aider à configurer et à utiliser Mageia permettant d’installer les dernières mises à jour, les codecs audios/vidéos et plein d’autres bonnes choses…





    X Window System (X11)

    Mageia 5 embarque X.Org 1.16.4

    KDE SC

    KDE SC 4.14 est fourni.

    KDE 4.14 est dédié à la mémoire de Volker Lanz. Il fournit une apparence, un ressenti et des fonctionnalités familières avec la stabilité solide comme le roc des dernières versions à support long terme de l'environnement de bureau Plasma (4.11.12) et des applications du dernier KDE SC (4.14).

    La couche KDE Telepathy offre des fonctionnalités comme le chiffrement Off-the-Record (OTR) pour la messagerie instantanée, la prise en charge de nombreux protocoles et un jeu d'éléments graphiques pour l’environnement Plasma. Les applications utilisant la couche multimédia sont maintenant basées sur la version 1.0 de GStreamer, permettant une réduction notable des dépendances.

    Mageia accorde un soin particulier à ce bureau.

    KF5

    Plasma 5.1 & KDE Frameworks 5 (en) en version 5.5. est également de la partie. Il est installable uniquement avec les medias en ligne.

    GNOME

    GNOME 3.14 est fourni.
    Voir GNOME 3.14 rebat les cartes

    Nous utilisons maintenant le thème standard Adwaita au lieu de Oxygen-gtk.

    LXDE


    LXDE est disponible en version 0.99. Cet environnement peut être installé à partir du DVD (installateur classique).

    XFCE


    Cet environnement peut être installé dans sa dernière version 4.12.1 à partir du DVD (installateur classique) ou du DVD double architecture.
    Xfce 4.12 est là !

    LXQt (remplaçant RazorQt)


    LXQt en version 0.9.0 est le successeur de RazorQt. Il le remplace pendant la mise à niveau depuis Mageia 4. Pour plus d’information, vérifiez également l’Errata. Il est installable uniquement avec les media en ligne.

    Mate


    Cet environnement peut être installé en version 1.8 à partir du DVD (installateur classique).

    Cinnamon

    Cet environnement peut être installé en version 2.4.5 à partir du DVD (installateur classique).

    Enlightenment


    Cet environnement est livré dans sa version E18 basée sur les bibliothèques Enlightenment Foundation.

    Gestionnaires légers de fenêtres

    Mageia 5 fournit aussi une multitude de gestionnaires de fenêtres petits et efficaces comme : afterstep, awesome, dwm, fluxbox, fvwm2, fvwm-crystal, i3, icewm, jwm, lightdm, matchbox, openbox, pekwm, sugar, swm, ou windowmaker.

    Applications bureautiques
    • LibreOffice a été mis à jour en version 4.4
    • Calligra en 2.8.7
    • Abiword en 3.0.0
    • Gnumeric en 1.12.20
    Navigateur internet & apps web

    Firefox et Thunderbird sont dans leurs dernières versions ESR.

    Dans les dépôts on trouve facilement chaussure à son pied : Transmission, Deluge, qBittorrent, KTorrent

    • Les identifiants d’utilisateurs sont maintenant créés avec un UID à partir de 1000 au lieu de 500 auparavant, puisque c’est le choix de la majorité des nouvelles distributions ;
    • Handbrake, un convertisseur vidéo libre, a finalement été ajouté à nouveau dans Mageia. C’est maintenant possible car il n’inclut plus les encodeurs faac et fdk-aac. Il prend en charge l’encodage x265 ;
    • Le convertisseur vidéo Transmageddon prend en charge l’accélération matérielle VAAPI.
    • Phototonic un lecteur et organiseur d’images, rapide, léger et à l'aspect Qt/C++ a été ajouté.
    • freshplayerplugin a été ajouté - c’est une surcouche qui permet à Firefox d’utiliser la dernière extension du lecteur flash pepperflash, à télécharger manuellement car elle vient seulement avec Google Chrome et Mageia ne peut pas l’embarquer par défaut. Pour plus de détails voir ce sujet de forum (en anglais), qui offre un script qui télécharge automatiquement la dernière version de l’extension pepperflash (c’est nécessaire seulement si vous utilisez Firefox sans installer Google Chrome) ;
    • Le paquet mailcap a été complétement mis à jour et synchronisé avec Fedora ;
    • Radio amateur - Les ajouts à la sélection de logiciels radio dans cette version sont : xdx, freedv, chirp et splat ;
    • SDR gqrx a été ajouté pour compléter Gnu Radio et offre un accès facile au monde des logiciels Radio. Prise en charge incluse d’une vaste gamme de matériels SDR ;
    • Grâce à Juan Luis Baptiste, les images officielles de docker pour Mageia 3 et 4 sont maintenant disponibles sur le site officiel de docker. Pour plus de détails voir ce poste sur la liste de diffusion des développeurs Mageia. Docker et Docker Registry sont aussi empaquetés pour Mageia 5, ce qui vous permet d’utiliser et de gérer vos conteneurs.
    Paquets obsolètes
    • postgresql9.0, postgresql9.1 et postgresql9.2 ont été abandonnés ; Mageia 5 fournit postgresql9.3 et postgresql9.4. Si vous utilisez l’un des anciens paquets sur Mageia 4, assurez-vous de sauvegarder vos bases de données avant la mise à niveau, de sorte que vous puissiez les restaurer une fois votre système à jour ;
    • Les paquets gwibber et couchdb ont été abandonnés, ils n’étaient pas maintenus et inutilisables. le service GNOME peut être un bon remplacement pour gwibber ;
    • Openstack a été abandonné car il n’était pas maintenu et contenait de nombreux problèmes de sécurité non résolus ;
    • ruby-rails a été abandonné car il n’était pas maintenu ;
    • wings3d a été abandonné car il ne fonctionne pas sous Mageia 5 et les paquets Erlang nécessaires sont manquants ;
    • zarafa a été abandonné par manque de retour sur les problèmes de sécurité (Voir bug 14993) ;
    • Les bibliothèques C standard inutilisées ont été abandonnées : musl, klibc, uClibc (uniquement glibc & dietlibc sont maintenant fournies).
    Problèmes connus et rapports de bogues

    Vous pouvez utiliser notre bugzilla, mais s’il vous plaît, consultez les Errata avant de signaler un bug. Si vous n’avez pas encore de compte Mageia, vous pouvez en créer un à l'adresse https://identity.mageia.org/. Si vous ne savez pas comment rapporter un bogue, consultez le guide (en).

    Valeurs sûres & Stabilité Dépôts en ligne de Mageia

    Les paquets de Mageia sont répartis dans trois dépôts/media suivant la licence.

    Le dépôt Core (cœur) est constitué des paquets essentiels ou spécifique à la distribution et de tous les logiciels entièrement libres qu’elle propose. L’ensemble des media Core est actif par défaut.

    Le dépôt NonFree (non-libre) comprend des paquets qui sont gratuits et redistribuables, mais à sources fermées (pilotes propriétaires des cartes graphiques NVIDIA et AMD/ATI, des micrologiciels pour certaines cartes wi-fi, etc). L’ensemble des media nonfree (nonfree release et nonfree updates) est configuré mais désactivé par défaut.

    Le dépôt Tainted (contaminé, entaché) comprend les paquets sous différentes licences, libres et non libres. Le principal critère est une infraction possible aux brevets et droits d’auteur (copyright) dans certains pays (par exemple les codecs multimédia nécessaires pour lire des fichiers audio/vidéo de différents types, les paquets nécessaires pour lire les DVD vidéo du commerce…)  ; l’ensemble des media tainted est configuré, mais désactivé par défaut, c’est-à-dire qu’il est à consentement préalable, donc vérifiez vos lois locales avant de redistribuer les paquets provenant de tainted (mais tout utilisateur peut les installer). Ce dépôt est à Mageia, ce que le dépôt RPM Fusion est à Fedora.

    Sur un système 64bits, le dépôt 32bits est aussi ajouté. Si les dépôts nonfree et/ou tainted 64bits sont activés, les dépôts 32bits correspondants seront activés automatiquement (ils peuvent être nécessaires pour des paquets comme Skype©, par exemple)

    Centre de Contrôle Mageia

    Le Centre de Contrôle Mageia (MCC ou drakconf) facilite la gestion et la configuration du matériel, du système et des services.

    Ce centre de contrôle est disponible au travers d’une interface centrale regroupant tout les modules, mais aussi sous formes de modules indépendants, et enfin en interface pour terminal.

    Utilisation

    Il permet de configurer une grande partie de son système Mageia, de manière simple et conviviale. Il est composé de plusieurs modules organisés en onglets. Tous les modules peuvent aussi être lancés de manière autonome, sans nécessairement passer par le centre de contrôle Mageia, pourvu que l’entrée de menu existe pour ce module, ou que l’on connaisse la commande à taper dans une console.

    Le Centre de Contrôle agit sur le cœur du système et les changements peuvent avoir un effet pour tous les utilisateurs de la machine. C’est pourquoi il nécessite les droits administrateurs (ou droits root) et demande donc le mot de passe de l’utilisateur root si nécessaire (c’est-à-dire si l’on est pas root).

    Gestion des logiciels

    Drakrpm (ou rpmdrake) est l’interface graphique de gestion des paquets logiciels, permettant la gestion des canaux, l’installation, la mise à jour, la désinstallation, la consultation des descriptions et la recherche. Pour en savoir plus, voir la documentation de rpmdrake.

    Utilisation de Drakrpm

    Ce gestionnaire de logiciel est un des principaux outils de Mageia. Il vous permet d’installer les logiciels sous forme de paquets, de les mettre à jour, et de les désinstaller à votre gré. Tous les paquets sont rangés par catégorie dans la barre latérale à gauche.

    À chaque démarrage, le gestionnaire met à jour la liste des paquets disponibles (appelés media) à partir des serveurs de Mageia.

    Un système de filtres vous permet de n’afficher que certains paquets : soit vous n’affichez que les applications (par défaut), soit vous n’affichez que des mises à jour disponibles. Vous pouvez également afficher uniquement les paquets installés ou qui ne le sont pas, y compris pendant une recherche. Vous pouvez également rechercher soit par nom de paquet, soit dans les résumés de descriptions, soit dans les descriptions complètes des paquets, soit dans les noms de fichiers inclus dans les paquets.

    Cet outil se trouve dans le Centre de Contrôle de Mageia, onglet « Gestion des logiciels », icône « Installer et désinstaller des logiciels ».

    1. Filtre de type de paquet : Il vous permet de n’afficher que certains types de paquets. Au premier démarrage il n’affiche que les applications. Vous pouvez afficher soit tous les paquets avec les dépendances et les librairies, soit uniquement des groupes de paquets, soit les applications seulement, soit les mises à jour seulement, soit des paquets rétro-portés de versions supérieures de Mageia Linux ;
    2. Filtre d’état de paquet : Ce filtre vous permet soit de n’afficher que les paquets installés, soit les paquets qui ne sont pas installés seulement, soit tous les paquets qu’ils soient installés ou non ;
    3. Mode de recherche : Cliquez sur la loupe pour rechercher parmi : les noms des paquets, leurs résumés, leurs descriptions complètes ou les fichiers inclus dans tous les paquets ;
    4. Champ de recherche : Entrez dans ce champ un ou plusieurs mots clés. Si vous souhaitez utiliser plus d’un mot clé, utilisez un '|' entre les mots clés. Par exemple, si vous recherchez mplayer et xine en même temps, tapez mplayer | xine ;
    5. Effacer : Ce bouton vous permet d’effacer d’un clic tout mot clé rentré dans le champ de recherche ;
    6. Liste des catégories : Ce panneau latéral regroupe toutes les catégories et sous catégories des logiciels disponibles ;
    7. Panneau de description : Ce panneau affiche le nom du paquet, son résumé et sa description complète. Il fourni de nombreuses informations sur l’élément sélectionné. Il permet également d’afficher des détails précis sur le paquet, les fichiers contenus dans le paquet, ainsi qu’un historique des derniers changement effectués par le mainteneur du paquet.

    Une fois les filtres correctement paramétrés, le paquet peut être trouvé par catégorie (dans la zone 6 ci-dessus) ou par nom/résumé/description (dans la zone 4). Une liste de paquets répondant à la requête et, ne l’oubliez pas, aux media choisis est affichée avec les indicateurs de statut précisant si le paquet est installé/pas installé/une mise à jour… Pour changer ce statut, cocher ou décocher la case devant le nom du paquet et cliquer sur Appliquer.

    Maintenir à jour

    Pour mettre à jour, on utilise le module drakrpm-update. Il peut se lancer depuis le Centre de Contrôle ou en console en tapant drakrpm-update ou MageiaUpdate.

    Il permet de mettre à jour l’ensemble des applications et paquets installés, et installe donc les paquets les plus récents disponibles parmi les media configurés.

    Matériel

    Réseau et Internet

    Système

    Partages réseau

    Disques locaux

    Sécurité

    Démarrage

    Installation Media d’installation

    Trois types de media sont disponibles : DVD 32 bits, DVD 64 bits, DVD DualArch.

    Ce dernier contient un choix précis et restreint de paquets, proposant ses bibliothèques en 32 & 64 bits, et ayant comme bureau Xfce.

    Ces media sont gravables sur support optique ou copiables sur un disque USB. Ils proposent le lancement du système d’installation complet et classique, en interface graphique ou en interface ncurses. Cet installateur prend aussi en charge les recettes Autoinstall, permet une installation en mode oem personnalisé, est capable de réaliser une installation en mode braille, ou encore d’utiliser une ligne série.

    Media Live

    Les media Live sont déclinés en huit variantes suivant la taille (CD et DVD), l’architecture matérielle (32 et 64 bits) et l’environnement de bureau (KDE et Gnome). Ils permettent tous l’installation simplifiée.

    Installation par le réseau filaire

    Quatre mini media (entre 30 & 80 Mo, 32 ou 64 bits, avec ou sans firmwares non libres) sont préparés pour ceux qui préfèrent une installation réseau (filaire).

    Ils permettent donc l’installation par internet ou depuis votre réseau, ce dernier pouvant comprendre simplement un fichier iso monté et partagé ou votre propre serveur d’installation. Ils supportent également les recettes AutoInstall.

    Mise à niveau depuis Mageia 4

    La mise à niveau d’une Mageia version 4 vers une version 5 est supportée de plusieurs manières. Avant de mettre à niveau :

    • S'assurer vous que Mageia 4 soit parfaitement à jour ;
    • Prendre connaissance de la page des problèmes connus et sauvegarder les données importantes peut être utile. Si des dépôts tiers, tels que ceux de Google, ont été ajoutés lors de l’utilisation de Mageia 4, inclure /etc/urpmi/urpmi.cfg dans les « données importantes ». Le contenu de ce fichier peut ensuite être utilisé pour ajouter à nouveau les dépôts tiers, après la mise à niveau.

    La mise à niveau de Mageia 4 vers Mageia 5 n’est pas possible depuis les media live, ces derniers copiant simplement leur contenu sur le disque.

    Avec les media CD & DVD

    Vous pouvez utiliser le DVD de Mageia 5 pour faire une installation mais aussi pour faire une mise à niveau de la version précédente. Pour mettre à niveau :

    • Téléchargez l’image ISO depuis la page de téléchargement de Mageia et gravez-la sur un DVD, ou installez-la sur une clé USB ; pour plus de détails sur ce point, jetez un œil à media d’installation disponibles ;
    • Démarrez sur le DVD et sélectionnez « Installer Mageia 5 » depuis le chargeur de démarrage dans le menu ;
    • Sélectionnez l’option de Mise à jour dans l’installeur (programme d'installation).
    Avec Internet En graphique

    L’applet de notification des mises à jour vous notifiera qu’une nouvelle version de Mageia est disponible et vous demandera si vous souhaitez faire la mise à niveau. Si vous acceptez, la mise à niveau se déroulera sans autre intervention. Si vous avez désactivé l’applet, ou si elle ne tourne plus de manière automatique pour une raison quelconque, vous pouvez lancer la mise à niveau soit par l’interface graphique (mgaonline), soit en ligne de commande (via urpmi). Les deux méthodes sont détaillées ci-après.

    En ligne de commande

    Vous pouvez aussi faire la mise à niveau en utilisant urpmi à partir de votre émulateur de terminal.

    • Supprimer toutes les sources existantes des media sur votre système en exécutant cette commande en tant qu’utilisateur root dans un terminal :

      su
      urpmi.removemedia -a

    • Ajouter les sources en ligne de Mageia 5, soit ;

    • En utilisant la méthode de LA LISTE DES MIROIRS (qui sélectionnera automatiquement un miroir en fonction de votre situation géographique) :

      su
      urpmi.addmedia --distrib --mirrorlist 'http://mirrors.mageia.org/api/mageia.5.$ARCH.list'

    (la variable $ARCH est soit i586 ou x86_64)

    • Ou utiliser un miroir de media spécifique :

      su

      urpmi.addmedia --distrib
      Vous pouvez récupérer la variable mirror_url en utilisant l’application web des miroirs Mageia

    • Pour finir, commencer la mise à niveau :

      su
      urpmi --replacefiles --auto-update --auto

    • Il est préférable d’exécuter la commande ci-dessus une seconde fois, afin de s'assurer que tout les paquets ont bien été mis à jour.

    Pour plus d’informations, consultez le manuel d'installation.

    Mageia c’est vous !!

    Mageia est régie par un code de conduite permettant de coopérer efficacement dans une atmosphère positive.

    Elle est organisée en équipes (traducteurs, développeurs, packageurs, testeurs [QA], communicants, etc.) qu’il est facile de rejoindre grâce à un système d’accompagnement des nouveaux contributeurs.

    Mais même en dehors de toute équipe, utiliser Mageia, en parler autour de soi, remonter les problèmes éventuels ou encore donner à l’association sont autant de manières de contribuer.

    Quelles que soient vos compétences, rendez-vous sur le site de la distribution pour contribuer à Mageia et intégrer la communauté !

    Télécharger ce contenu au format Epub

    Lire les commentaires

    Appel à financement pour le prochain RoundCube

    21 juin, 2015 - 18:54

    Si vous êtes un grand utilisateur de RoundCube ou si vous souhaitez découvrir un webmail simple, vous pouvez participer au financement du prochain RoundCube: RoundCube Next.
    À cette heure, 78% de l'objectif est déjà atteint.

    Le financement de RoundCube Next a pour but d'accélérer le développement de modules complémentaires et nécessaires: Bavardage en ligne, Calendrier, Fichiers, etc.

    Au moment où j'écris, il vous reste 14 jours pour participer (financièrement).

    Voir les liens pour découvrir les nouveautés.

    Voici le copier/coller sur les fonctionnalités de RoundCube:

    Released features

    • Available in over 70 languages
    • Drag-&-drop message management
    • Full support for MIME and HTML messages
    • Sophisticated privacy protection
    • Compose messages with attachments
    • Multiple sender identities
    • Full featured address book with groups and LDAP connectors
    • Find-as-you-type address book integration
    • Richtext/HTML message composing
    • Forwarding messages with attachments
    • Searching messages and contacts
    • Threaded message listing
    • IDNA support
    • Spell checking
    • Canned response templates
    • IMAP folder management
    • Shared/global IMAP folders
    • Support for external SMTP server
    • Support for access control lists (ACL)
    • Built-in caching for fast mailbox access
    • Unlimited users and messages
    • Import/export functions
    • Template system for custom skins
    • Plug-in API for flexible exensions

    Planned features

    • Support for PGP and S/MIME encryption
    • Online calendar module
    • Advanced search over all folders
    • Virtual folders (aka saved searches)
    • Keyboard shortcuts
    • Attachment previews
    • Responsive skin for mobile devices
    • Save/link attachments in cloud storage services
    • Conversation view using XCONVERSATIONS
    • Browser history support
    • Admin interface
    Télécharger ce contenu au format Epub

    Lire les commentaires

    Jardin Entropique - 26 > 28 Juin 2015 à Rennes - Publication du programme

    20 juin, 2015 - 16:04

    Nous sommes heureux de publier le programme du Jardin Entropique, qui se tiendra à Rennes (France) du 26 au 28 juin 2015.

    C’est quoi ?

    Jardin Entropique est un événement pour partager, débattre et découvrir sur le thème du numérique et de la liberté. Il rassemble des universitaires, des chercheurs, des développeurs, des acteurs et artistes qui se préoccupent de ces enjeux. Jardin Entropique est gratuit, ouvert à tous, et se veut aussi pédagogique, convivial et festif !

    Pourquoi ?

    « Science sans Conscience n’est que ruine de l’âme » (Pantagruel, Rabelais,1532).
    Simplement parce que nous pensons que le progrès technologique n’a de sens que s’il est partagé entre tous, et que chacun peut (et doit) en conserver la maîtrise. Partant du constat que les outils numériques et Internet sont trop souvent utilisés pour faire de nous des consommateurs dociles, et pas assez pour renforcer la démocratie, nous avons fait appel à tous ceux qui souhaitent contribuer à changer la donne pour discuter et échanger sur des alternatives.

    C’est qui ?

    Le collectif Breizh-Entropy, l’association 3Hit Combo et l’association Jardin Moderne.

    Comment ?

    Avec pas mal de réunions tardives, un peu d’engueulades, une motivation sans faille, un engagement réjouissant de tous les participants, et un budget équivalent à 0,0007 % de celui de la French Tech.

    Et ça donne quoi ?

    Début de l’événement: Vendredi 26 à 14H00 aux Ateliers du Vent dans le cadre de « La Vie en Containers »
    Inauguration: 19H00 aux Ateliers du Vent.

    Conférences :
    • « Dynamique et diversité des contributions au libre et impact sur la qualité et la diffusion du libre » par Michael Scherer (RedHat)
    • « Decentralised Communication with Matrix – The challenge of balancing interoperability and privacy » [en anglais] par Matthew Hodgson (Matrix.org)
    • « Liberté numérique face au contexte politique, économique et sociétal : entre affirmation libertaire et développement libéral, quel engagement ? » par Philippe Berthelot & « L’Espace public, les espaces numériques, l’intérêt général, les modèles économiques… ‘Ingrédients d’une recette non aboutie : comment avancer sur ce qui apparait incompatible ? » par Jean-François Burgos
    • « tetraneutral.net / DCP bay » par Laurent Guerby
    • « Le logiciel libre et la Jeunesse, vecteurs du développement de l’Afrique« , par Florent Youzan (Visio-conference)
    • « Beyond GnuPG and Tor: Technologies to secure the future Internet » [en anglais] par Jeff Burdges & Christian Grothoff (GnuNet)
    • « CryptoParty en bibliothèque ? L’exemple de la bibliothèque de l’INSA de Rennes » par Damien Belvèze & Chloé Lailic (INSA Rennes)
    • « Untimely experiences around technology sovereignty » [en anglais] par efkin
    • « Internet et citoyenneté : quand la société civile s’approprie le numérique pour lutter » par Annaïg Denis & Myriam Tollemer
    • « Dans le monde artificiel, comme dans le naturel, le chemin à parcourir est le même : réaliser les droits fondamentaux des personnes » par Marco Ciurcina (Hipatia)
    • « Free Software — Freedom in your Computer » par Richard Stallman (Conférence de clôture)
    • Présentations courtes de divers projets
    Ateliers :
    • « Création visuelle libre » par Timothée Giet (Animtim)
    • « Wikidata, base de données libre et collaborative » par Nicolas Vigneron et Seb35
    • « Démonstration : CookieViz » par Stéphane Petitcolas (CNIL)
    • « Démonstration : Mobilitics » par Stéphane Petitcolas (CNIL)
    • « Démonstration : Wifi sniffer » par Stéphane Petitcolas (CNIL)
    • « Introduction à OpenStreetMap » par Gwénaëlle Berthelo
    • « Introduction à Tor/Tails » par Syl
    • « Jeu vidéo « Visual Novel » facile avec Ren’Py » par Beuc
    Stands :
    • Stand Actux
    • Stand FFDN
    • Stand Nos-Oignons
    • Stand Floss Manuals
    • Stand Mozilla
    Installations :
    • « The Road Furrow » par Florelle Pacot
    • Exposition d’un cabinet de curiosité de technologies obsolètes par Labomedia
    Concerts :
    • Beyond && M4urEyes
    • Jonaz
    • « root@patriarchy:~# shutdown -h now » de normal c/alas

    Pour plus de détails (horaires, accès, descriptions des conférences…) n'hésitez pas à consulter le site de l'évenement.

    Télécharger ce contenu au format Epub

    Lire les commentaires

    April Camp à Toulouse du 19 au 21 juin 2015

    19 juin, 2015 - 21:22

    La prochaine édition de l'« April Camp » aura lieu du vendredi 19 juin 2015 18 h 30 au dimanche 21 juin 2015 au soir.

    Cet April Camp aura lieu dans les locaux de la société Ekito au 15 rue Gabriel Péri, 31000 Toulouse. Ekito met gracieusement ses locaux à notre disposition, nous les en remercions chaleureusement. Des outils pour participer en ligne seront également disponibles.

    N'hésitez pas à vous inscrire, à proposer des thèmes de travail, à juste passer nous voir. Le vendredi 19 juin vers 18h30/19h un petit apéro sera organisé. Et un autre samedi vers 19h00 également. Pour vous inscrire, proposer des thèmes de travail, connaitre le programme, rendez-vous sur le pad.

    Donner entre 15 minutes et deux jours de votre temps pour le libre !

    L'idée d'un « April Camp » est de se réunir pendant plus de deux jours entre adhérents et soutiens de l'April pour déjà se rencontrer et échanger avec les activistes de l'association mais surtout de faire avancer des projets en cours, en lancer de nouveaux. Toutes les idées sont les bienvenues. Voir sur le pad

    Les projets peuvent être de nature technique, des outils de communication, etc. Chacun est invité à participer en fonction de son temps disponible, de ses compétences, de ses envies.

    L'« April Camp » a lieu physiquement à un endroit (jour et nuit si nécessaire), mais également en ligne. Des outils pour participer en ligne sont disponibles : IRC, Pads, pont téléphonique, serveur de voix sur IP.

    Venez nombreuses et nombreux quand vous voulez pour la durée que vous souhaitez !

    Télécharger ce contenu au format Epub

    Lire les commentaires

    PyconFR 2015 du 17 au 20 octobre 2015 à Pau

    19 juin, 2015 - 08:10

    La conférence Python aura lieu du 17 au 20 octobre 2015 à Pau !

    PyconFR est la conférence annuelle francophone autour du langage Python organisée par l'Association Francophone Python (AFPY). Elle aura lieu cette année à l'EISTI. Débutants et confirmés sont les bienvenus à cette conférence. L'entrée est gratuite et libre.

    Les conférences auront lieu les 17 et 18 octobre, et les 19 et 20 Octobre seront dédiés aux sprints.

    Nous sollicitons toute personne susceptible de proposer un sujet de présentation ayant trait au développement, à l'utilisation ou à l'écosystème de Python. Nous espérons recevoir des contributions provenant d'environnements variés et couvrant les cas d'utilisations les plus divers : enseignement, recherche, gestion d'infrastructure, jouets électroniques ou encore applications industrielles, à tout type de niveau.

    Pour faire une proposition, une inscription est nécessaire.

    L'appel à conférencier est ouvert et la date limite est fixée au 25 juillet 2015 à 23H59.

    À propos de PyConFR 2015

    Elle se déroule du 17 au 20 octobre, à Pau. La conférence principale sera du 17 au 18 octobre. Elle sera suivie de deux jours d'ateliers de formations et de sprints.

    • 17 et 18 octobre 2015 : conférences ;
    • 19 et 20 octobre 2015 : sprints.
    Qui devrait soumettre une proposition ?

    Toi. Tes amis. Les amis de tes amis. N'importe qui quel que soit son niveau en Python est un bon candidat pour cette conférence. Nous essayons d'avoir une conférence la plus diverse possible.

    Que tu aies commencé Python le mois dernier ou en décembre 1989, nous sommes convaincus que tu as quelque chose à partager. La communauté Python francophone est plus active que jamais, et nous sommes à l'affût des nouveaux domaines, des nouveaux projets, de nouveaux points de vue… et des nouveaux utilisateurs.

    Nul besoin d'être un conférencier professionnel ! Ce qui nous intéresse sont les sujets, le matériel, et ta motivation pour présenter des choses intéressantes à la communauté. Nous accueillons chaque année des nouveaux venus, et travaillons avec eux pour les aider à faire leurs premiers pas.

    Quel genre de présentation puis-je faire ? Conférences

    Ce sont les présentations traditionnelles. Généralement de vingt minutes, nous offrons quelques créneaux un peu plus long. Nous organisons l'agenda en deux "tracks", en essayant de regrouper les présentations par sujet.

    Quant au sujet, c'est à toi de voir. On veut des sujets pour tout le monde ! On veut les sujets les plus intéressants pour la communauté en ce moment. Mais on veut aussi les sujets les plus intéressants pour le futur. Où est-ce que Python va ? À toi de nous le dire.

    Si tu as un sujet, mais que tu n'es pas sûr de comment le proposer, n'hésite pas à nous contacter, et nous t'aiderons.

    Tu peux aussi jeter un coup d’œil aux propositions de l'année dernière.

    Posters

    Les sessions posters permettent des échanges plus interactifs avec la communauté. Les échanges durent souvent bien plus que le temps accordé dans l'emploi du temps.

    L'idée est de présenter ton sujet sur un grand poster, et les participants se baladent, lisent ce que tu as écrit, et discutent avec toi des points qui les intéressent. C'est aussi simple que ça ! Tu peux, par exemple, commencer par faire une session Q&A dans la première minute de la session avec un petit groupe de gens.

    Les posters retenus seront exposés dans un espace dédié. Un temps sera réservé à leur présentation si leur nombre est conséquent.

    Télécharger ce contenu au format Epub

    Lire les commentaires