Syndiquer le contenu
Mis à jour : il y a 21 heures 39 min

Sortie de Electron 1.0

14 mai, 2016 - 11:22

Electron permet de construire des applications de bureau multi-plateformes avec les technologies du web (HTML, CSS et JS). Il était initialement développé par Github pour son éditeur de texte Atom et est maintenant un projet à part entière. Il vient d'atteindre la version 1.0, signe d'une certaine maturité.

D'un point de vue technique, une application Electron se compose de 2 parties : un processus principal et une (ou plusieurs) fenêtre(s). Le processus principal est un node.js et il sert à contrôler l'application. Il peut lancer une ou plusieurs fenêtres, qui ne sont rien d'autres que le navigateur Chromium dépouillé de son interface. Les processus peuvent communiquer entre eux via un système d'IPC.

Electron offre une intégration avec les trois principaux systèmes d'exploitation (Linux, OSX et Windows), que ce soit pour les icônes de lancement, la tray icon, les notifications, la gestion de l'énergie, etc. Il vient également avec certains outils. On peut citer devtron, un complément à l'inspecteur de Chromium qui simplifie le développement, spectron, un framework de tests, ou encore electron-builder pour faire des installeurs et mises à jour automatiques.

Electron souffre toutefois de certaines limitations. Embarquer Chromium et Node.js veut dire que la moindre application pèse plus de 100 Mo. L'intégration avec les différents systèmes d'exploitation est encore incomplète et fonctionne parfois de manière déroutante (la tray icon qui ne s'affiche pas dans certains environnements par exemple). Electron-builder est très compliqué à mettre en place pour de la cross compilation. Espérons que Github continuera à travailler pour améliorer tout ça.

Il existe déjà de belles applications avec Electron :

  • J'ai cité Atom, l'éditeur de texte de Github.
  • Dans un style très proche, Microsoft a utilisé Electron pour Visual Studio Code.
  • Nylas N1 est un client de courriel.
  • Web Torrent Desktop permet de visionner des films depuis un torrent en cours de téléchargement (c'est un portage de la version web qui permet également de faire passerelle entre les deux).
  • Black Screen est un terminal pour le 21e siècle.

Et j'espère pouvoir vous parler d'une autre application Electron bientôt.

Télécharger ce contenu au format Epub

Lire les commentaires

PostgreSQL et la streaming replication (Belgique, Mons, 19 mai 2016)

13 mai, 2016 - 14:33

Ce jeudi 19 mai 2016 à 19h se déroulera la 49e séance montoise des Jeudis du Libre de Belgique.

Le sujet de cette séance : PostgreSQL et la streaming replication

Thématique : Base de données|sysadmin|communauté

Public : DBA|sysadmin|entreprises|étudiants

L’animateur conférencier : Stefan Fercot

Lieu de cette séance : HEPH Condorcet, Chemin du Champ de Mars, 15 – 7000 Mons – Auditoire Bloc E – situé au fond du parking (cf. ce plan sur le site d’Openstreetmap ; ATTENTION, l’entrée est peu visible de la voie principale, elle se trouve dans l’angle formé par un très grand parking. le bâtiment est différent de celui utilisé lors des autres séances).

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

Description

Dans le milieu hospitalier, Stefan Fercot et son équipe sont chargés de gérer au quotidien l’infrastructure serveurs hébergeant la solution développée par leur société. Ce dossier patient informatisé est un élément central pour les équipes soignantes de nombreuses institutions. Maintenir une application performante et hautement disponible est donc très important. C’est à cette fin qu’est utilisé PostgreSQL, fonctionnant sur serveurs CentOS/RedHat.

PostgreSQL est un moteur de base de données relationnelle open source utilisé à travers le monde dans de nombreux secteurs : hébergement web, hôpitaux, banques… Parmi ses plus fervents utilisateurs, citons notamment Skype.

L’exposé ciblera les sujets suivants :

  • Installation ;
  • Brève explication du fonctionnement interne ;
  • Méthodes de sauvegarde (dumps, point-in-time recovery, streaming replication) ;
  • Streaming replication : retour d’expérience d’utilisation dans un environnement de type « cluster » ;
  • Quelques chiffres des volumétries gérées.

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

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

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

Télécharger ce contenu au format Epub

Lire les commentaires

Point d'étape sur loi française de finances 2016 (article 88) et les logiciels libres de caisse

13 mai, 2016 - 00:16

Je vous propose ici un résumé concernant l'article 88 de la loi française de finances pour 2016 concernant les logiciels de gestion et de comptabilité.

En décembre 2015, la loi de finances pour l'année 2016 a été votée. Son article 88 « dispose que les assujettis à la taxe sur la valeur ajoutée (TVA) doivent à compter du 1er janvier 2018 être équipés d'un système de caisse sécurisé ». La formule est celle de la DGFIP (Direction Générale des FInances Publiques).

Cette obligation se traduit dans les grandes lignes par le respect des « conditions d'inaltérabilité, de sécurisation, de conservation et d'archivage des données » ainsi que par le jeu de la responsabilité essentiellement basé sur un système de certification/ attestation obligatoire.

Une dépêche avait alors été publiée pour faire part de craintes sur les effets de cet article sur les logiciels libres; la disposition pouvant clairement résulter, de fait, dans l'interdiction des logiciels libres de caisse.

La deuxième partie détaille les actions entreprises (rencontres, courriers) et l'évolution de la situation.

En janvier 2016 l'April (Frédéric Couchet, Jeanne Tadeusz et moi même) et Philippe Pary (Société Scil) avions rencontré des membres de la DGFIP. Les éléments clefs qui sont ressortis de cette rencontre étaient que l'administration fiscale n'était pas opposée en soi au logiciel libre, ils se sont montrés réceptifs aux problèmes soulevés, qu'il était important de mieux définir la notion d'éditeur (à laquelle est attachée la responsabilité) et comment assurer les conditions d'inaltérabilité, de sécurité, de conservation et d'archivage des données.

Fin mars la DGFIP a fait un « appel à remarques » sur son projet de commentaire au BOFIP de l'article 88. Clôt le 29 avril. Celui-ci, bien sûr perfectible, montre un clair pas en avant vers les logiciels libres. Les inquiétudes n'ont pas été ignorées. Pour rappel, le BOFIP ou Bulletin Officiel des FInances Publiques a valeur de doctrine opposable à l'administration fiscale. Il s'agit donc d'un texte essentiel dans l'application de la loi de finance et donc sur l'étendue et la nature des obligations qui pèseront sur les « éditeurs » de logiciels de caisse, notamment libres.

Philippe Pary (société Scil, éditrice du logiciel de caisse Pastèque), et Baptiste Simon (Libre Informatique SCRL) ont co-signé une réponse à cet appel (en pdf) au nom du Syndicat Professionnel des Éditeurs de Logiciels Libres (SYNPELL).

Le document co-signé exposant clairement les différents points de vigilance et d'inquiétude, je me permets ici de vous en proposer un simple résumé des points essentiels :

Conditions d'inaltérabilité, de sécurisation, de conservation et d'archivage des données :
  • Notions définies de manière trop floue.
  • Il n'existe aucune méthode 100% fiable scientifiquement pour garantir ces conditions.
Système de certification, l'enjeu du lien de solidarité :
  • Pour rappel il s'agit d'une certification de conformité du logiciel à la loi. Peut être délivrée par un organisme, ou par l'éditeur qui atteste de cette conformité (en engageant sa responsabilité).
  • Le SYNPELL appelle à une certification directe par l'administration fiscale, et non déléguée à un organisme privé.
  • Le syndicat critique également l'obligation de détenir un code NACE (~ le champ d'activité) spécifique à l'édition de logiciel de caisse pour auto-attester de la conformité de son logiciel, et/ou des modifications effectuées sur celui-ci.
  • Cela est en lien direct avec un aspect positif du BOFIP qui précise que l'« éditeur » est soit le concepteur d'origine, soit le dernier intervenant qui a effectué une modification liée aux conditions d'inaltérabilité, de sécurité, etc. Ce dernier point est particulièrement important dans la mesure où il autorise la modification des logiciels sans faire porter une responsabilité « infinie » aux éditeurs. L'attestation de conformité s'éteint si la partie qu'elle concerne est modifiée.
Définition du logiciel libre :
  • Le projet de commentaire au BOFIP définit un logiciel libre comme étant « librement paramétrable ». La réponse du SYNPELL rappelle la véritable définition, plus précise, basée sur les 4 libertés.

Nous sommes à présent dans l'attente de la publication officielle du BOFIP sur la loi de finances 2016. En espérant que ces différentes remarques auront été prises en compte.

Télécharger ce contenu au format Epub

Lire les commentaires

Bitkeeper essaye de rattraper l'histoire en passant Open Source

12 mai, 2016 - 19:25

BitKeeper, logiciel de gestion de version vient discrètement de passer en Open Source, sous licence Apache 2.0. Soit plus de dix ans après l'avènement de Git dont il est indirectement à l'origine. Que de temps pour trouver le bon chemin !

Enfin diront certains, trop tard diront d'autres. Le changement s'est fait relativement discrètement via l'annonce assez laconique de la version Bk-7.2ce sur leur forum :

I might as well mention bk-7.2ce which is the first open-source release.

Si vous vous demandez si cela vaut le coup de laisser tomber votre SCM préféré, ils ont en place une page spécialement pour vous. Ironie de l'histoire, sur leur page de téléchargement, ils proposent de récupérer les sources de BitKeeper via Git !

Petit historique

Rappelez-vous, à partir de 2002 de nombreux développeurs et mainteneurs du noyau Linux, et pas des moindres, ont utilisé BitKeeper comme système de gestion de versions décentralisé. Outil très puissant certes, mais fortement propriétaire, développé par la société BitMover et dont la version gratuite était disponible pour les projets Open Source, mais limité fonctionnellement et les rendant dépendant de serveurs administrés par BitMover. Cela avait provoqué de grosses flamewar à l'époque.

En 2005, suite à un conflit entre l'éditeur et certains développeurs qui faisaient de le rétro-ingénierie du protocole, la version gratuite fut retirée. Pendant que ça trollait en mode « je vous l'avais bien dit », Linus se mit au travail et en deux à trois semaines, le développement du noyau reprenait sur un nouveau SCM nommé Git qui est quasiment devenu dix ans plus tard un standard de facto pour la gestion de source décentralisée.

BitKeeper vient rejoindre les déjà nombreux DVCS libres encore maintenus comme Darcs (2002), Mercurial (2005), Bazaar (2005) ou Fossil (2007).

Notes de version

Nous ne ferons pas l'historique de tous les changements depuis 10 ans. Sachez juste que cette version 7.2ce, outre sa libération, apporte

  • Une mise à jour vers TCL/Tk v8.6, ce qui améliore l'aspect sur MacOS ;
  • La correction de problèmes de performances sur des répertoires avec un grand nombre de tags ;
  • La suppression d'anciennes commandes (bk _eula, bk lease, bk legal, bk more, bk status --compat, bk users) ;
  • Une modernisation de l'interface « BK/Web service » pour qu'elle soit plus conformes aux standards d'aujourd'hui (ils semblent dater de 1998) ;
  • Plein d'autres petits détails qui parleront aux utilisateurs réguliers.
Télécharger ce contenu au format Epub

Lire les commentaires

La Student DemoCup 2016 est lancée ! #SDC16

12 mai, 2016 - 17:32

La « Student DemoCup » (SDC) remet le couvert cette année et invite à table tous les étudiants motivés pour présenter leurs projets innovants s'appuyant sur des technologies Libres, Open Source, Open Data ou Open Law.

Comme l'année passée, la finale de l'événement est hébergée par le Paris Open Source Summit et se déroulera dans le grand auditorium le 16 novembre au soir. Mais le concours démarre maintenant et vous pourrez trouver toutes les informations dans la suite de la dépêche et sur le site de la Student DemoCup.

Student DemoCup, késako ?

La « Student DemoCup » (SDC de son petit nom) est organisée dans le cadre du Paris Open Source Summit chaque année afin de récompenser les meilleurs étudiants porteurs de projets innovants, libres et Open Source. Les finalistes défendent en direct leur projet devant un large public et un jury emblématique du numérique ouvert (liste non finale). Cette tribune est ouverte à tous les étudiants qui, seuls ou par équipe, se lancent dans des projets innovants s'appuyant sur des développements et des technologies libres, Open Source, Open Data ou Open Law.


Et comme chaque année, LinuxFr.org est partenaire et on est sur scène pour encourager les gagnants ;-)

Pour cette édition 2016, les régions sont à l'honneur !
La Student DemoCup sera organisée et relayée par les principaux acteurs régionaux du numérique ouvert : Clusters, Pôles de compétitivité, Universités, Ecoles, … avec le soutien de grands partenaires médias, industriels, de l'enseignement supérieur et associatifs.

Les thèmes à aborder sont les mêmes que l'édition passée. Nous vous invitons à consulter la dépêche de l'époque ainsi que le tout nouveau règlement de la compétition.

Les dates clés
  • 15 mai : Date de début du dépôt des projets
  • 1er juin au 9 octobre : Validation des projets
  • 24 octobre : Sélection des projets finalistes
  • 24 octobre au 15 novembre : Vote du public
  • 16 novembre : Finale en direct du Paris Open Source Summit

Télécharger ce contenu au format Epub

Lire les commentaires

Node.js passe la sixième vitesse

12 mai, 2016 - 10:20

Node.js est la principale implémentation du langage JavaScript côté serveur. Elle utilise V8, le moteur JavaScript de Google Chrome, et vient d’atteindre la version 6.0.0 le 26 avril 2016.

La montée de version de V8 vers la version 5.0 a d'ailleurs permis une meilleure prise en charge d'ES6, avec 93 % des fonctionnalités couvertes. Parmi les autres nouveautés, on trouve des performances accrues (notamment pour le chargement des modules), une meilleure stabilité et utilisabilité des API JavaScript (notamment Buffer et File System).

Peu de temps après la sortie de la version 6.0.0, des failles OpenSSL ont été annoncées, ce qui a conduit à la sortie d'une version 6.1.0.

Les différentes versions

Ce n'est pas facile de suivre les différentes branches de node.js suite au fork io.js, qui a ensuite refusionné avec node.js. Toutefois, la situation n'est que temporaire et on devrait y voir plus clair d'ici la fin de l'année. En attendant, voici un petit résumé :

  • node.js 0.10 : une vieille version, qui est toujours celle packagée par Debian notamment, est en phase de maintenance jusqu'à octobre 2016 (ensuite, ce sera les oubliettes)
  • node.js 0.12 : pareil, mais la phase de maintenance durera jusque décembre 2016
  • node.js 4 : c'est la version LTS actuelle. Elle sera en LTS Active jusqu'avril 2017, puis passera en phase de maintenance pour une année supplémentaire
  • node.js 5 : c'est juste une version de développement et elle s'arrêtera dans 2 mois
  • node.js 6 : c'est également une version de développement (current) et deviendra une version LTS en octobre 2016. D'ici là, il pourra encore y avoir des changements assez conséquents (montée de version de V8 notamment).

Donc, pour le moment, il est recommandé d'utiliser node.js 4 en production et de commencer à faire tourner des tests avec node.js 6 dans les environnements d'intégration continue pour détecter les régressions. À noter que pas mal de modules npm compilés sont en train d'être corrigés pour node.js 6.

Npm3

Node.js 5 et 6 viennent avec npm3 et non plus npm2. Ce changement est majeur.

Avec npm2, les dépendances d'une dépendance s'installaient dans le répertoire node_modules de la dépendance. Et donc, on pouvait avoir un même module avec deux versions différentes au sein d'un même projet, si deux dépendances incluaient ce module dans des versions différentes. Avec npm3, ce n'est plus le cas. Toutes les dépendances (directes et indirectes) sont installées dans le node_modules du projet.

Ce changement a permis de régler pas mal de problèmes sous Windows, où les dépendances de dépendances de dépendances de… (vous voyez l'idée) avaient des chemins très longs, trop longs pour Windows. Il permet également de s'assurer qu'un module n'est installé qu'une seule fois par projet, ce qui est très utile pour les projets front-end qui utilisent npm.

Par contre, le passage à npm3 n'a pas que des bons côtés. Ce changement a introduit pas mal de régressions et la situation commence juste à se stabiliser. Npm3 est également de façon notoire bien plus lent que npm2.

ES6, ES7 et la suite

ES6, ou ES2015, la version actuelle du standard qui décrit le langage JavaScript est le fruit d'un long travail et les implémentations des moteurs JavaScript supportent la plupart des fonctionnalités. Que ce soit chez Google, Mozilla, Microsoft ou Apple, on est proche des 100 %, avec jusque quelques bugs sur des cas très particuliers ou la volonté de ne pas implémenter les Tail Calls Optimisation (car ils posent des problèmes).

Pour autant, tout n'est pas rose. Les nouvelles fonctionnalités ne sont pas aussi optimisées que le reste. Les benchmarks montrent qu'il est fréquent que du code ES6 soit entre un et trois ordres de grandeur plus lent que son équivalent en ES5. Les moteurs vont combler ces différences mais cela risque de prendre encore quelques mois ou années.

Autre point noir : les modules d'ES6. L'équipe derrière node.js a fait une proposition pour prendre en charge les modules d'ES6 (en disant que s'ils vont faire les modules d'ES6, ce sera de cette façon, mais il se peut aussi qu'ils ne fassent rien car ils considèrent que les modules d'ES6 sont une mauvaise chose et que le standard devrait étudier à nouveau cette question). Cette proposition n'a pas plu à une partie de la communauté car elle introduit l'extension .mjs, ce qui va poser problème pour les modules qui seront utilisables à la fois par node.js et les navigateurs. On a donc eu le droit à une contre-proposition et les noms d'oiseau ont volé une nouvelle fois sur Twitter. La situation semble enlisée pour le moment.

ES7, ou ES2016, est beaucoup plus léger. C'est principalement l'arrivée de l'opérateur ** pour calculer des puissances et de Array.prototype.includes pour savoir si un élément fait partie d'un tableau.

Par contre, on attend toujours async/await. Cette solution devrait permettre d'écrire du code asynchrone de manière beaucoup plus propre et est même décrite comme la solution miracle depuis plusieurs années. Seul problème, aucun moteur JS ne l'a implémentée pour le moment.

Télécharger ce contenu au format Epub

Lire les commentaires

Meilleures contributions LinuxFr.org : les primées d'avril 2016

12 mai, 2016 - 01:07

Stop à la procrastination. Après une pause de quelques mois, nous reprenons la bonne habitude de récompenser ceux qui chaque mois contribuent au site LinuxFr.org (dépêches, commentaires, logo, journaux, patchs, etc.). Vous n'êtes désormais pas sans risquer de gagner un abonnement à GNU/Linux Magazine France ou encore un livre des éditions Eyrolles ou ENI. Voici les gagnants du mois d'avril 2016 :

Abonnement d'un an à Linux Magazine France

Livres des éditions Eyrolles et ENI

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

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

Les livres sélectionnés par les gagnants :

                        Télécharger ce contenu au format Epub

Lire les commentaires

Le MMORPG Ryzom sur Steam depuis le 6 mai 2016

11 mai, 2016 - 15:32

La sortie du MMORPG Ryzom est disponible sur la plateforme de distribution Steam depuis le 6 mai 2016.

Qu'est-ce que Ryzom ?

Ryzom est un MMORPG de science-fantasy basé sur un monde vivant unique : une planète-plante aux paysages envoûtants, sauvage, peuplée de mille dangers. Vous pouvez y incarner une des quatre races humanoïdes du jeu, contribuer à la reconquête de leur civilisation perdue et influer sur l'évolution du monde.

Jeu sandbox au PvP consensuel, au roleplay très présent et à la communauté mature, Ryzom a la spécificité de ne pas limiter ses personnages en classes et dispose d'un système évolué de récolte et d'artisanat. L'alignement des personnages sur une des nations et factions proposées peut évoluer pour mieux suivre le roleplay de chacun.

Bande-annonce : https://www.youtube.com/watch?v=oZVKC5oAk9M

Données techniques

Ryzom est jouable sous Windows, Linux et Mac OS X. Son interface est disponible en allemand, anglais, espagnol, français et russe.

Tarifs

Ryzom est jouable en version gratuite jusqu'au niveau 125, sans limitation de temps.

Plusieurs tarifs d'abonnement sont proposés pour accéder à la version complète qui offre la possibilité d'atteindre le niveau 250, davantage de moyens de stockage et double la vitesse d'acquisition des points d'expérience.

Particularité

Ryzom est l'un des rares MMORPG commerciaux à être entièrement open source : client, serveur, outils, et média, ce qui offre aux joueurs une opportunité unique de s'impliquer dans le développement du jeu, notamment à travers des projets libres Ryzom Core et Ryzom Forge.

Principales améliorations effectuées à l'occasion de la sortie de Ryzom sur Steam Améliorations visuelles
  • Améliorations du rendu (FXAA, filtrage anisotrope, bloom amélioré) ;
  • Correction et régénération de toutes les textures ;
  • Support d'Optimus pour les cartes NVIDIA.
Améliorations techniques
  • Utilisation d'OpenGL comme pilote 3D par défaut pour toutes les plateformes et cartes graphiques ;
  • Mise à jour de toutes les bibliothèques externes ;
  • Support du 64-bits et des dernières versions de toutes les plateformes ;
  • Amélioration du support des compilateurs (GCC 5, MinGW, Visual C++ 2012, 2013 et 2015) ;
  • Amélioration du support du HTML dans le jeu (nouvelles balises, suppression de la dépendance à libwww, correctifs, etc.) ;
  • Nouvelle version multiplateforme du programme de configuration ;
  • Support du format GIF ;
  • Support des noms de fichiers unicodes sous Windows.

Amélioration de la sécurité
  • Hachage des mots de passe en SHA-512 au lieu de DES ;
  • Mise-à-jour du certificat SSL.
Confort et améliorations diverses
  • Amélioration du texte en jeu
  • Générateur aléatoire de nom lors pour la création de personnage ;
  • De nombreuses optimisations, améliorations et corrections de bugs ;
  • Correction de nombreux warnings ;
  • Utilisation de tous les coeurs par défaut ;
  • Détection de la quantité de mémoire disponible sur la carte graphique et utilisation de la qualité adéquate ;
  • Synchronisation verticale supportée sous toutes les plateformes ;
  • Utilisation de XAudio2 comme pilote audio par défaut sous Windows ;
  • Gros refactoring de l'interface afin de créer un éditeur WYSIWYG.

Pour plus d'informations sur Ryzom, veuillez visiter http://www.ryzom.com ou rendez-vous sur la page Steam de Ryzom à l'adresse http://store.steampowered.com/app/373720/.

Télécharger ce contenu au format Epub

Lire les commentaires

Picoloop un séquenceur musical

11 mai, 2016 - 12:38

Picoloop est un séquenceur musical que je développe depuis 2013. Ce logiciel est une « groovebox » logicielle permettant de jouer des séquences de 16 pas. Chaque pas peut contenir une note et un ensemble de paramètres permettant de modifier la tessiture du son joué.

Ce logiciel permet de créer de la musique à partir d'un ordinateur Linux/Windows ou d'une console de jeu PSP, GP2X, Dingoo. Il s'inspire fortement des logiciels Nanoloop (non-libres) développés par Oliver Wittchow un Allemand spécialiste du développement de séquenceur sur GameBoy, GameBoy Advance et Android.

Picoloop est en licence BSD.

Sommaire Histoire de Picoloop

En 2010, j'ai découvert deux logiciels qui ont modifié sur le long terme mon approche de la musique.

Nanoloop

Le premier, Nanoloop, est un séquenceur synthétiseur embarqué dans une cartouche de GameBoy Advance permettant de jouer de la musique électronique. Pour de nombreux utilisateurs, ce logiciel dont je m'inspire très fortement dispose d'une ergonomie tout simplement parfaite.

Je qualifierai même d'oeuvre d'art ce logiciel sur un point de vue ergonomique mais aussi sur ses nombreuses qualités d'un point de vue musical.

Il permet entre autres de jouer quatre pistes monophoniques en stéréo. Il s’intègre avec des instruments midi. Il permet de créer une musique tout à fait cohérente et travaillée.

LGPT

Le second, LGPT, est un séquenceur échantillonneur s'inspirant des trackers des années 90 que l'on trouvait sur Amiga, Atari et DOS. Ce logiciel fonctionne sur de nombreuses consoles portables sous Linux et permet de jouer 8 pistes contenant des samples.

Le label http://www.hexawe.net/ publie des albums qui sont composés uniquement avec ce logiciel. D'ailleurs, la plupart des musiques des albums sont publiées avec le fichier LGPT associé.

Picoloop

Après deux années à me balader avec ces deux logiciels dans mon sac à dos, je me suis dit : « je suis capable de développer mon logiciel, qui répondra à mes besoins et souhaits ».

Je connaissais la programmation C/C++ sous Linux mais je n'avais encore jamais développé de logiciel graphique et sonore sur des plateformes embarquées. J'ai donc commencé à bricoler divers main.c. Je suis arrivé à mettre en place une interface graphique et lui faire jouer des plips et des plops. J'ai porté cette interface sur la plateforme Dingoo, une console portable sous Linux. Et là… je suis clairement tombé dedans.

Séquenceurs menu et affichage

Le séquenceur propose 4 pistes dans lesquelles on retrouve des patterns (les séquences).

Voilà à quoi ressemble le séquenceur graphiquement :

L'affichage est composé de trois élements :

  1. le séquenceur dans une matrice 4x4 de 16 pas
  2. le menu situé en bas, les crochets indiquent le menu sélectionné
  3. les infos courantes situées à droite
  • les pas 1, 7, 10 et 15 seront joués.
  • le cutoff et la résonance sont les paramètres en cours de modification, on peut le voir sur la deuxième ligne de texte à droite
  • la tête de lecture du séquenceur se trouve au pas numéro 8 en vert sombre affiché également à droite (numérotation commençant à 0).
  • le curseur de sélection se trouve sur le pas 7 en vert clair et je suis en train de modifier la hauteur du cutoff et de la résonance pour ce pas.
Le séquenceur

Il permet de jouer de 16 à 128 pas par piste.

BPM

Le BPM (vitesse de lecture en Beat Par Minutes) et le swing (décalage temporel du temps des pas), peuvent être modifiés globalement pour les 4 pistes, en fonction du type de musique que l'on souhaite créer.

Swing

Le swing, parfois appelé groove dans certains séquenceurs, permet de modifier la vitesse de lecture des pas pairs et impairs. Picoloop permet de modifier ce swing de 25 à 75 pour les quatre pistes simultanément.

  • Un swing à 50 donne le même temps de lecture pour chaque pas, on a donc une vitesse de lecture homogène entre les pas.
  • Un swing à 75 permet de lire les pas pairs deux fois plus vite que les pas impairs.
  • Un swing à 25 permet de lire les pas impairs deux fois plus vite que les pas pairs.
TimeDivision

Chaque piste peut profiter d'un temps de divisions temporelles différent. Cela permet de faire varier la vitesse de lecture d'une piste par rapport à une autre. L'utilité pratique d'une telle fonctionnalité est de créer de longues nappes de synthé que l'on fait varier très lentement. Par exemple un temps de division de 8 permet de lire une piste de 16 pas à la même vitesse qu'une piste de 128 pas. Ce qui est très pratique, mais finalement peu disponible dans les séquenceurs à pattern.

Ergonomie du séquenceur

La modification d'un pattern s'effectue en temps réel pendant que le séquenceur joue le pattern. L'ensemble des paramètres de synthèse de chaque synthétiseur peut être modifié pour chaque pas, ce qui donne une variation élevée du son joué par un pattern. Cette ergonomie est similaire à Nanoloop et est proche des séquenceurs Elektron.

Chargement et sauvegarde des patterns

Un menu Load/Save permet de sauvegarder le pattern qui est actuellement joué sur une piste. On peut si on le souhaite sauvegarder et charger indépendamment chaque piste et non les quatre en même temps. Ce qui permet de faire des micro-variations dans ce que l'on joue.

Le chargement d'un pattern s'effectue en temps réel et non à la fin d'un pattern. Cette méthode adaptée au jeu en temps réel, et utilisée typiquement sur les synthétiseurs Volca, augmente le panel de variations possible que l'on peut appliquer à des patterns de 16 pas.

Plateforme

J'ai développé Picoloop pour qu'il fonctionne sur des consoles de jeu mais aussi sur PC.

L'idée est assez simple, je souhaitais :

  • disposer d'un bloc-note musical avec moi ;
  • pouvoir utiliser les pistes créées sur ce bloc-note directement avec mes synthés mais aussi sur un CPU ayant des performances supérieures aux consoles de jeu ;
  • disposer d'un code ayant une portabilité élevée afin de pouvoir le faire évoluer vers les nouvelles plateformes qui sortiront dans le futur ;

Picoloop fonctionne donc sur Linux, Windows mais aussi sur les autres plateformes sur lesquelles j'ai eu le temps de le porter.

Le choix des bibliothèques utilisées par le code du logiciel a été effectué dans un souci de portabilité. J'utilise SDL 1.2 pour l'affichage car SDL 1.2 est encore disponible sur beaucoup de plateformes. RtAudio pour la gestion du son et RtMidi pour la partie Midi (en cours de développement et partiellement implémenté).

PSP et Dingoo

Ici une photo de Picoloop sur plateformes Dingoo avec le système Linux OpenDingux et PSP avec un firmware permettant l’exécution de homebrew (code "maison").

Moteur de synthèse Picosynth

Un synthétiseur soustractif 32 bits 2 oscillateurs utilisant uniquement des entiers que j'ai développé spécialement pour valider le concept de l'application dans un environnement sans virgule flottante. Il utilise une synthèse soustractive très simplifiée. Il permet de jouer des sons très simples.

Picodrum

Un synthétiseur soustractif 32 bits dédié aux rythmes. Il s'inspire très fortement du moteur Picosynth. Il permet de jouer des "kicks", des "hats" et des "snares".

DBOpl

Un synthétiseur FM 2 opérateurs utilisant un code source d'émulation de carte OPL2. Ce type de synthèse était utilisé typiquement sur les jeux DOS.

Cursynth

Un synthétiseur soustractif 2 oscillateurs développé par Matt Tytel disponible également sous Debian en ligne de commande.

Twytch

Également appellé Helm, un synthétiseur soustractif 2 oscillateurs développé également par Matt Tytel. Ce synthétiseur est plus complet et plus varié que Cursynth.

PBSynth

Encore un autre synthétiseur soustractif 2 oscillateurs. Ce synthé a été développé il y a plusieurs années par un amateur de développement logiciel et de musique, à la base pour la plateforme GP2X. Celui-ci occupe très peu de CPU, il fonctionne en entier et virgule flottante et peut être joué sur une console de jeu type PSP.

MDA Drumsynth

Un synthétiseur rythmique développé par la société MDA qui l'a mis en opensource par la suite.

Code source et binaire

Le code source de ce logiciel est hébergé sur GitHub. Le forum du développement du logiciel se trouve hébergé sur chipmusic.org. La dernière version des binaires pour Windows et PSP se trouve sur Dropbox.

Étant seul sur le développement de ce projet que j'effectue par passion, je n'ai pas créé de paquets pour Debian, Redhat et autres versions de Linux. Cependant le logiciel n'est pas compliqué à compiler et le README contient les instructions liées à la compilation sous Linux. Si vous souhaitez contribuer à la création d'un paquet pour votre distribution préférée vous êtes bien évidemment les bienvenus.

Si vous souhaitez contribuer à ce logiciel, je vous invite à soumettre vos diffs au format "diff -Naur" directement dans la partie "issue" dans Github en précisant le tag git sur lequel s'applique ce patch.

Exemples de production

Les deux premiers lien musicaux utilisent Open303 et Cursynth qui sont des synthèses qui demandent une FPU très puissante : comprendre PC desktop ou laptop supportant au moins SSE et fournissant 1 Gflops. Un PC laptop bas de gamme d'il y a quatre ans en est capable.
En clair le code utilisé tourne sur PC et il n'est pas optimisé suffisamment pour tourner sur de l'embarqué, il demande à vue de nez 500 Mflops pour fonctionner correctement par piste, et il y a quatre pistes. Ces tracks n'ont pas été testés sur processeur ARM avec NEON mais les processeurs ARM tablette et smartphone ne sont probablement pas encore en mesure de gérer suffisamment de FLOPS en CPU pour arriver à soutenir 4 voix avec un calcul flottant de ce type.

Le troisième utilise picodrum, picosynth et Dbopl, en gros ce qu'il est possible de sortir sur une PSP ou une Dingoo avec du calcul entier (int long) et pas de FPU. C'est une synthèse moins couteuse que les deux tracks précédentes.

Licence Dialogue entre un attentif modérateur et l'auteur :

« Concernant la dépêche sur Picoloop en cours de modération sur LinuxFr.org : d'abord merci d'avoir rédigé et soumis une dépêche sur LinuxFr.org. L'équipe de modération s'interroge sur une information manquante qui est généralement attendue par nos lecteurs, à savoir la licence du logiciel.

Après un examen rapide, je dirais, sauf erreur, concernant le dépôt Git :

  • rien dans le README global
  • amsynth/ : GPLv2+
  • biquad_filter/ : licence libre basique
  • chip/gb : GPLv2
  • chip/opl2 : GPLv2+
  • PGCPE : licences propriétaires (dont "Not for reproduction (electronic or hardcopy) except for personal use." par exemple). Ça paraît problématique.
  • cursynth: GPLv3+ (potentiellement un souci avec le GPLv2 strict vu plus haut)
  • lgptsampler : GPLv2+
  • mda_drumsynth : GPLv2+
  • midi : une BSD modifiée avec une demande optionnelle d'envoi des modifications
  • open303 : pas d'info de licence, propriétaire donc
  • pbsynth : pas d'info de licence, propriétaire donc
  • picoloop : non concluant, a priori un mélange de licences plus du non spécifié
  • twytch : GPLv3+
  • vopm : non concluant, je dirais propriétaire

La dépêche évoque Picoloop, Picosynth, Picodrum, DBOpl, Cursynth, Twytch, PBSynth et MDA Drumsynth. Pourrait-on connaître la licence de chacun de ces logiciels ? Idéalement l'ajout d'un fichier COPYRIGHT contenant la licence dans chaque répertoire, la mention de la licence dans le README et l'utilisation d'entêtes serait pratique pour déterminer la licence de chaque code. Voir par exemple http://www.gnu.org/licenses/gpl-howto.fr.html pour la GPL. »

La réponse courte

Je vais placer une licence BSD sur le répertoire Picoloop, le code source du logiciel. Ça me semble le plus adapté en fonction de la façon dont je développe ce logiciel. Si une personne souhaite le reprendre un jour il pourra le faire évoluer vers un type de licence plus adapté au cycle de vie de ce logiciel. Je vais intégrer un fichier LICENCE en fonction de ce que j’aperçois dans chaque répertoire, tu as déjà fait un gros bout du boulot. Je répond à ce mail une fois que c'est effectué avec le nom des fichiers et les explications du pourquoi.

La réponse longue

Tu soulèves une question très intéressante mais aussi très longue à détailler et expliquer, j'ai toujours repoussé à plus tard et je n'aurais sans doute pas dû.
Je me suis intéressé uniquement à l'aspect conception du logiciel, les licences pour moi c’était annexe tant que le code semblait être BSD, GPL, MIT et autres licence opensource. Je n'ai toujours pas tranché très clairement la licence qui peut s'appliquer au programme en lui même pour différente raison que je vais décrire. Je vais donc partir par défaut sur la BSD.

Tout d'abord je vais détailler un peu le dépôt github.com/yoyz/audio :

  • Le répertoire "." du git contient les codes sources d'origine sans modification
  • Le répertoire "picoloop" du git contient le programme Picoloop et ses dépendances pour compiler avec gcc/g++ make, en clair le minimum vital pour ne pas avoir à ramener 15 dépendances pour que le binaire puisse fonctionner.

Je ne travaille que dans le répertoire "picoloop" du git pour faire évoluer le logiciel et patcher les moteurs sonores. Je travaille dans le répertoire "." du git pour importer des moteurs sonores. C'est pour ça d’ailleurs que le git s'appelle « audio » et non « picoloop », car un jour j'y ajouterai d'autres programmes qui dépendront de ces moteurs de synthèse. Les imports de code de moteurs de synthèse se font dans le répertoire "." afin de garder une trace des sources originales. J’intègre au final dans Picoloop quand un moteur sonore est fonctionnel tel quel avec un "build.sh" et un "main.c" permettant de valider un helloworld dessus. Par exemple je n'utilise pas encore VOPM, ni PGCPE, enfin celui-ci il va falloir que je creuse pour savoir où il se trouve j'en ai pas de souvenir.

Ensuite le programme Picoloop dans le répertoire du même nom est scindé en deux grosses briques :

  1. le séquenceur qui utilise les bibliothèques RtAudio, RtMidi, SDL1.2, DirectX ;
  2. les plugins moteurs de synthése qui sont dans des licences très variées comme tu as pu le voir.

L'ensemble des .c/.cpp du répertoire picoloop et des répertoires fils sont compilés dans des .o. J'ai donc besoin de l'ensemble des codes des moteurs de synthèse que j'utilise et du séquenceur pour fabriquer le binaire. Il n'est pas possible d'utiliser des .so et donc de désolidariser chaque bout de code, bien que ce soit portable sous Unix, car la PSP ne les prend pas en charge de la même façon, Windows également. Et donc ça demanderait pas mal de boulot pour arriver à un résultat incertain. Donc, pragmatiquement, je suis obligé d'avoir l'ensemble des codes sources pour que ça fonctionne. Et tout ces codes sources dans des licences variées.

Je penche fortement du coup pour une licence BSD pour Picoloop, ce qui laisse à quiconque le soin de faire ce qu'il souhaite des sources sans se préoccuper trop de l'aspect juridique lié aux licences. Pour la simple raison que si la GPL2 est sans doute incompatible avec la licences MIT qui est incompatible avec la tataouinepouetpouet licence, ça ne m’intéressera absolument pas. Qu'est ce que tu en penses vu la construction du soft ?

Dans le monde de la MAO, il y a peu de codeurs (moins de 10) par projet et le code source tombe très souvent aux oubliettes au bout de quelques années. Et avec ce prérequis d’insérer un lot de .h et de .o avec licences variées dans un exécutable, le mieux serait peut-être qu'il soit en BSD au final afin de tout simplifier. Mon intérêt c'est de faire un logiciel qui me plaît et qui plaît aux gens ; si un jour je souhaite faire de l'argent avec, ou si une autre personne souhaite faire de l'argent avec, que ce soit faisable sans devenir un casse-tête juridique. Je pense donc que laisser les sources sans patch et avec patch dans le même arbre ça peut aider à démystifier ce casse-tête, s'il se présente un jour.

Concernant les moteurs de synthèse dont la licence semble problématique voici ce que j'ai trouvé :

  • Open303 : MIT
  • PGCPE : celui-ci je ne l'ai pas vu dans mon code ? Je ne pense pas l'utiliser, il doit traîner dans le "." du git — enfin ça ne me dit rien, mais c'est sans doute un bout de code qui suit un autre bout de code. Très souvent des moteurs sonores sont publiés par des codeurs indépendants sur leur page personnelle. On retrouve très souvent ces bouts de code avec des émulateurs qui sont publiés avec leurs source. D'ailleurs j'encourage tous ces petits gars à publier leur code, même s'ils ne fournissent pas l'infra ./configure et autre pour que ça tourne, juste un bout de code permettant une réutilisation.
  • Pbsynth : le code a été publié avec le binaire Linux Gp2x sur le site Openhandleds. L'auteur ne répond plus à ses courriels, il a sans doute changé d'adresse. Je ne saurais dire quelle est la licence de ce bout de code logiciel, l'auteur a laissé les sources et le binaire volontairement sur le site Openhandhelds. En suivant le fil du README, je pense qu'il ne s'est jamais plus préoccupé de la suite des événements, même s'il a songé un jour à en faire un produit. Donc je ne sais pas, je l'ai contacté, il y a plus d'un an, il ne m'a jamais répondu.
  • Vopm, je viens de lui envoyer un courriel sam_kb CHEZ yahoo.co.jp, c'est un Japonais qui publie des VST freeware pour Windows avec le code source, et là je ne sais pas quel est la licence et j'avoue ne pas lui avoir posé la question précédemment ; je n'utilise pas son code source dans Picoloop, du moins pas encore, mais j'y songe.
Du coup, si je résume
  • Open303 utilise une licence MIT, et il est utilisé dans le code
  • PGCPE il faut que je creuse, sûrement dans le "." du git, mais pas dans Picoloop le logiciel ;
  • Picoloop, on va dire BSD pour que rien ne coince, je vais mettre un fichier LICENCE ;
  • Et concernant ces logiciels qui se trouvent dans "picoloop/Machine" (les moteurs de synthèse) :
    • Picoloop : BSD
    • Picosynth : BSD
    • Picodrum : BSD
    • DBOpl : GPLv2 audio/picoloop/Machine/Dbopl/adlib.h
    • Cursynth : GPLv3
    • Twytch : GPLv3
    • PBSynth : je ne le saurais sans doute jamais
    • MDA Drumsynth : opensource, mais quelles licences ? sur Sourceforge ils disent GPLv2 et MIT, mais je n'en suis pas certain.
Je viens de mettre à jour le git avec tes recommandations.

Voici l'arbre des licences :

dossier licence picoloop BSD picoloop/Machine/MidiOutSystem BSD picoloop/Machine/Cursynth GPLv3 picoloop/Machine/Twytch GPLv3 picoloop/Machine/Dbopl GPLv2 picoloop/Machine/MDADrum GPLv2 picoloop/Machine/Open303 MIT picoloop/Machine/PBSynth Inconnue ; l'auteur a disparu dans la nature picoloop/Machine/Picosynth BSD picoloop/Machine/Picodrum BSD

Tout le reste du repo git, le répertoire "." n'est pas lié au logiciel Picoloop. J'y dépose ce dont j'ai besoin pour travailler, mais on peut construire le logiciel rien qu'à partir du répertoire "picoloop".

C'est donc lié à ma méthode de travail et lié à la construction du logiciel.
Du coup, seul PBSynth pose un souci et je ne vois pas bien comment résoudre ce problème.

Télécharger ce contenu au format Epub

Lire les commentaires

Les journaux LinuxFr.org les mieux notés du mois d'avril 2016

10 mai, 2016 - 23:06

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

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

Télécharger ce contenu au format Epub

Lire les commentaires

Revue de presse de l'April pour la semaine 18 de l'année 2016

10 mai, 2016 - 14:12

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

[Numerama] Quels sont les 9 projets open source financés par DuckDuckGo?

Par Julien Lausson, le samedi 7 mai 2016. Extrait:

Le site DuckDuckGo dévoile le nom des neuf lauréats qui ont droit à une enveloppe de 25 000 dollars pour poursuivre le développement de leur projet open source.

Lien vers l'article original: http://www.numerama.com/tech/168426-quels-sont-les-9-projets-open-source-finances-par-duckduckgo.html

[Developpez.com] Emploi: l'open source est un domaine porteur, mais les talents restent une denrée rare

Par Michael Guilloux, le vendredi 6 mai 2016. Extrait:

L'univers des technologies reposant sur l'open source s'agrandit et la demande de professionnels dans ce domaine suit la tendance. La fondation Linux en partenariat avec Dice, un site de recherche d'emploi pour les professionnels de la technologie, vient de publier son rapport annuel sur l'emploi dans le monde open source, l Open Source Jobs Report. À la fois recruteurs et professionnels de l'open source ont été interrogés pour avoir un aperçu du paysage de l'emploi dans le domaine.

Lien vers l'article original: http://www.developpez.com/actu/98431/Emploi-l-open-source-est-un-domaine-porteur-mais-les-talents-restent-une-denree-rare-revele-l-Open-Source-Jobs-Report-de-2016

[Monde qui bouge] Petit périple dans le paysage des Communs

Par Dominique Nalpas, le mercredi 4 mai 2016. Extrait:

Un concept qui ne fait pas toujours l’unanimité et suscite même des inquiétudes mais qui se développe de plus en plus, à Bruxelles comme ailleurs. Essai de décryptage.

Lien vers l'article original: http://www.mondequibouge.be/index.php/2016/05/petit-periple-dans-le-paysage-des-communs

[Defimedia.info] Techno: les hackers mauriciens ne sont pas des pirates

Par Patrice Donzelot, le mercredi 4 mai 2016. Extrait:

Redonner aux «hackers» leurs lettres de noblesse et mettre en avant les talents des Mauriciens dans le codage, tels sont les objectifs de passionnés locaux regroupés dans le collectif ‘hackers.mu’. Le premier message que ces férus d’informatique expliquent, c’est qu’un ‘hacker’ n’est pas un pirate.

Lien vers l'article original: http://defimedia.info/techno-les-hackers-mauriciens-ne-sont-pas-des-pirates-27618

[L'OBS] Loi numérique: tout ce que les sénateurs ont changé

Par Andréa Fradin, le mardi 3 mai 2016. Extrait:

Le Sénat vient de boucler ses discussions sur le texte d’Axelle Lemaire. Il le marque d’une certaine défiance vis-à-vis de l’open data et d’une vive offensive contre les plateformes comme Airbnb et leurs utilisateurs.

Lien vers l'article original: http://rue89.nouvelobs.com/2016/05/03/loi-numerique-tout-les-senateurs-ont-change-263930

Et aussi:

Voir aussi:

[InformatiqueNews.fr] Pourquoi pas un SGBD open source?

Par La rédaction, le mardi 3 mai 2016. Extrait:

Alors que le marché des bases de données s’est stabilisé autour du trio Oracle/IBM/Microsoft et plus récemment SAP, les bases de données open source ont gagné en maturité et deviennent un choix réaliste.

Lien vers l'article original: http://www.informatiquenews.fr/sgbd-open-source-46861

[We Demain] Un projet à 15 millions de dollars pour démocratiser l'éducation grâce au logiciel libre

Par Lara Charmeil, le lundi 2 mai 2016. Extrait:

Issues de 33 pays, 136 équipes vont développer des logiciels éducatifs à destination des enfants défavorisés. Les projets lauréats seront testés en Tanzanie. À l'origine de cette opération inédite, la fondation XPrize, l'UNESCO et le Programme alimentaire mondial.

Lien vers l'article original: http://www.wedemain.fr/Un-projet-a-15-millions-de-dollars-pour-democratiser-l-education-grace-au-logiciel-libre_a1822.html

Télécharger ce contenu au format Epub

Lire les commentaires

Sortie du langage Pharo et de son environnement de développement en version 5.0

10 mai, 2016 - 12:04
Parlons de Pharo

Comme chaque année depuis maintenant près de 7 ans, nous sommes heureux de vous annoncer la nouvelle version de Pharo : Pharo 5.0

Qu'est ce que c'est ?

Pharo est un langage de programmation orienté objet, en Smalltalk, fun et addictif. C'est aussi un environnement de développement complet et qui évolue. Son environnement est capable d'inspecter et de modifier ses objets pendant l’exécution.

Quoi de neuf ? Le Mooc

Vous pouvez dés aujourd'hui vous inscrire et participer au Mooc sur Pharo. Vous y (ré)apprendrez des choses concernant la programmation orientée objet, certains mécanismes, la syntaxe de Pharo et plein d'autres choses. Tout ça au travers d'exercices, et de vidéos explicatives. NdM : voir aussi le journal de lepieru.

Les livres

Pour les fans de lectures sur papier, nous avons l'honneur de vous annoncer que le livre « Enterprise Pharo » sera disponible en version papier. Pour le moment il n'existe qu'en version PDF, mais plus pour longtemps. Nous vous conseillons de jeter un œil sur Updated Pharo By Exemple qui est une version mise à jour du livre « Pharo By Exemple ».

Les ajouts
  • La PharoVM a changé, elle est maintenant basé sur Spur et rend Pharo 35% plus rapide.
  • UnifiedFFI remplace NativeBoost pour fournir une Foreign Function Interface à la compatibilité spur.
  • GTool inclut maintenant GTDebugger.
  • Il est maintenant possible d'ajouter des Breakpoint sans devoir taper du code.
  • QualityAssistance fait partie du navigateur Nautilus, pour indiquer immédiatement le code incorrect ou les bugs.
  • Un widget FastTable pour implémenter facilement des grosses listes, gros tableaux, gros arbres.
  • Nouveau navigateur Catalog pour chercher et installer des projets externes.
Les contributions Pillar

Vous pouvez en apprendre d'avantage dans le Linux Mag du mois d'Avril 2016. Pour résumé, Pillar est un langage balisé écrit en Pharo capable de transformer vos documents pillar en document LaTeX ou HTML de manière extensible et polymorphe.

OpenGL

Voici quelques vidéos qui vous montre la puissance d'OpenGL dans Pharo :

Cette nouvelle version d'OpenGL dans Pharo utilise UFFI.

Pour finir Ce qui vous attend l'année prochaine

Comme tous les ans, une nouvelle version de Pharo devrait arriver. Dans Pharo 6.0, vous aurez enfin la possibilité de versionner vos projets à l'aide de Git. Le gestionnaire de paquets devrait être entièrement repensé. Bien sûr, il y aura encore des corrections de bugs. Mais nous vous donnons rendez-vous l'année prochaine pour partager ces améliorations.

Contributeurs à l'article LinuxFr.org
  • Marion Noirbent
  • Valentin Rickewaert
  • Maxime Roeland
  • Thibault Arloing
  • Yann Dubois
Télécharger ce contenu au format Epub

Lire les commentaires

Crystal, un langage proche de Ruby, en version 0.16

8 mai, 2016 - 22:53

Crystal est un langage de programmation, encore jeune. Il s'inspire de Ruby pour la syntaxe mais vise des performances proches du C. La version 0.16 vient de sortir, avec un nouvel algorithme pour l'inférence de types. À noter, le compilateur de Crystal est écrit en Crystal.

Voici à quoi ressemble un serveur HTTP basique écrit en Crystal :

# A very basic HTTP server require "http/server" server = HTTP::Server.new(8080) do |context| context.response.content_type = "text/plain" context.response.print "Hello world, got #{context.request.path}!" end puts "Listening on http://0.0.0.0:8080" server.listenUne syntaxe proche de Ruby

Comme on peut le voir dans l'exemple ci-dessus, la syntaxe est très proche de celle de Ruby. C'est un des objectifs du langage. Ceci dit, la compatibilité avec Ruby n'en fait pas partie.

On retrouve ainsi des classes similaires à celles de Ruby :

class Person def initialize(name : String) @name = name @age = 0 end def name @name end def age @age end end

Ou la notion de blocks :

def twice yield yield end twice do puts "Hello!" end Typage statique

Mais il existe également des différences avec Ruby. Par exemple, Crystal a un typage statique et des génériques :

class MyBox(T) def initialize(@value : T) end def value @value end end int_box = MyBox(Int32).new(1) int_box.value # => 1 (Int32) string_box = MyBox(String).new("hello") string_box.value # => "hello" (String)

En général, l'inférence de types permet de ne pas spécifier les types des variables et méthodes, mais vous pouvez de manière optionnelle le faire :

def add(x : Number, y : Number) x + y end Bindings avec le langage C

Crystal permet de déclarer des bindings avec le langage C. Et, fait notable, ces bindings peuvent être déclarés en Crystal. Voici un exemple pris de la bibliothèque standard pour s'interfacer avec la libyaml :

@[Link("yaml")] lib LibYAML alias Int = LibC::Int PARSER_SIZE = 480 type Parser = Void* struct VersionDirective major : Int minor : Int end # ... fun yaml_parser_initialize(parser : Parser*) : Int end Génération et évaluation de code au moment de la compilation

Le meta-programming de Ruby est très puissant mais aussi très coûteux en performances. Crystal a donc choisi une autre voie : les macros. Celles-ci permettent d'éviter d'avoir à écrire beaucoup de code répétitif sans impacter de manière notables les performances.

Une macro reçoit un noeud AST et va générer du code lors de la compilation.

macro define_method(name, content) def {{name}} {{content}} end end # Va générer: # # def foo # 1 # end define_method foo, 1 foo #=> 1 Concurrence et parallélisme

Crystal permet actuellement de construire des programmes concurrents avec des primitives comme les fibers et channels, mais la jeunesse du langage se fait sentir sur ces aspects.

On peut séparer des tâches à effectuer dans des fibers. Chaque fiber a un contexte propre et est comparable à une goroutine en Go par exemple. Les fibers sont coopératives et ne vont passer la main à une autre fiber que de manière explicite (par opposition aux threads, qui sont pré-emptifs).

Il existe également une fiber un peu particulière, l'Event Loop, qui gère tous les I/O.

Enfin, les fibers communiquent entre elles via des channels.

require "socket" channel = Channel(String).new spawn do server = TCPServer.new("0.0.0.0", 8080) socket = server.accept while line = socket.gets channel.send(line) end end spawn do while line = gets channel.send(line) end end 3.times do puts channel.receive end

Ainsi, Crystal permet déjà de structurer son code pour gérer la concurrence, mais est limité de la même façon que le JavaScript pour le parallélisme : une seule fibre peut s'exécuter à un moment donné.

Compilation vers du code natif efficace

Crystal profite de LLVM pour compiler vers du code natif. Les performances sont au rendez-vous. Par exemple, dans ce benchmark, Crystal se retrouve entre C/C++ et Go/Node (et donc loin devant Ruby).

Télécharger ce contenu au format Epub

Lire les commentaires

Mageia propose un concours artistique pour sa version 6

8 mai, 2016 - 21:38

Mageia.org a ouvert son traditionnel concours artistique pour sa prochaine version : Mageia 6. Le concours se débute le samedi 7 mai 2016 et sera clôturé le 23 mai 2016 inclus. Pour rappel, Mageia est un système d’exploitation libre, basé sur GNU/Linux. C’est un projet communautaire, soutenu par une association française loi 1901, baptisée Mageia.org, constituée de contributeurs élus.

L’Atelier — équipe en charge du design et de l’identité de Mageia entre autres — a ouvert son concours hier en espérant que nombre d’entre vous serez intéressés et tentés de prendre vos pinceaux, de partir à l’assaut de GIMP, Inkscape & Co pour proposer vos créations !

Mageia fournira un fond d’écran officiel, dix fonds supplémentaires et plein d’autres détails qui rendront Mageia plus attirante. L’Atelier choisira dix fonds d’écrans provenant de différents contributeurs pour les intégrer aux « fonds d’écran supplémentaires ».

Mageia reste une distribution qui repose sur sa communauté, toutes les propositions sont donc les bienvenues.

Vous trouverez toutes les informations nécessaires (aspects techniques, licence, etc.) sur le blog.

Télécharger ce contenu au format Epub

Lire les commentaires

Agenda du Libre pour la semaine 19 de l'année 2016

8 mai, 2016 - 16:33

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

Sommaire Agenda du Libre pour la semaine 19 de l'année 2016 [Montpellier] Formation sécurité informatique et cryptographie - Le lundi 9 mai 2016 de 08h30 à 13h00.

Montpel’libre premier centre formateur Tails en France a le plaisir de vous proposer un nouveau cycle de formation, cryptographie et sécurité informatique. En partenariat avec
Merci d’avoir choisi de participer aux ateliers « Sécurité Informatique et Cryptographie » organisés par Le Club de la Presse et Montpel’libre.
Formation Crypto, séance de préparation, premier module :

[Kunheim] Formation Linux - Le lundi 9 mai 2016 de 18h00 à 22h00.

Tous les lundis à partir de 18h00 jusqu'à 22h00 venez découvrir ou vous former sur Linux et les logiciels libres.
Ces séances de formation ont lieu à la salle "Kegreiss" au 56 rue principale - Kuhneim - face à la mairie - cette salle est accessible aux personnes à mobilité réduite.
Nous vous attendons nombreux. Le Team Linux

[Montpellier] WikiPermanence - Le lundi 9 mai 2016 de 18h00 à 20h00.

Une WikiPermanence est une rencontre physique entre des wikipédiens chevronnés et de nouveaux ou futurs wikipédiens qui souhaitent acquérir des connaissances et des conseils sur le fonctionnement de Wikipédia. Il ne s’agit pas d’une simple rencontre entre wikipédiens : la WikiPermanence est là pour répondre aux questions, permettre des démonstrations, offrir une aide aux premiers pas et, si cela se fait régulièrement, permettre un suivi.
N’hésitez pas à venir : c’est sans inscription, et vous l’aurez deviné, libre et gratuit !
Wikipédia est une encyclopédie libre rédigée collaborativement par des milliers d’internautes. Mais, saviez-vous que vous pouviez y participer ? En apportant des connaissances, en créant ou améliorant des articles, en prenant des photos, ou simplement en corrigeant des fautes, vous pouvez contribuer à ce grand projet d’encyclopédie collaborative.

[Nantes] Atelier Wikipédia Femmes et féminisme - Le lundi 9 mai 2016 de 18h30 à 21h30.

Atelier de contribution à Wikipédia.
L'objectif de cet atelier est de rendre les femmes plus visibles sur Wikipédia en écrivant des biographies de personnages féminins ou des articles en lien avec le féminisme. Ouvert à tou.te.s.
Cet atelier a lieu à l'Espace Simone de Beauvoir, 15 du quai Ernest Renaud, Nantes, arrêt ''Gare maritime'' de la ligne 1 du tramway.

[Champs-sur-Marne] FOSS4G-FR : logiciels libres pour la géomatique - Du mardi 10 mai 2016 à 08h00 au jeudi 12 mai 2016 à 18h00.

Le FOSS4G-fr 2016 est un événement dédié à la géomatique Open Source et aux données géographiques libres, organisé par l'association OSGeo-fr. Il aura lieu du 10 au 12 mai 2016 à l'ENSG (École Nationale des Sciences Géographiques) à Marne-la-Vallée, France.
Cet événement comprend deux jours de conférences précédés d'une journée de workshops. Il vous permettra de découvrir les dernières tendances et technologies du domaine, ainsi que certaines de leurs applications concrètes.
Cet événement s'adresse tant aux utilisateurs qu'aux développeurs d'outils géomatiques Open Source. Retrouvez plus d'informations sur le site de l'événement: http://foss4g.osgeo.fr.

[Villetaneuse] Sécurité, sûreté et confidentialité - Le mardi 10 mai 2016 de 09h00 à 18h00.

Deuxième événement du Printemps de l'innovation Open Source, organisé par le GTLL de Systematic et l'Irill, présidé par Roberto Di Cosmo
Sécurité, Sûreté et Confidentialité
Programme dirigé par Laure Petrucci, directrice du Laboratoire d'Informatique de Paris Nord (LIPN), Université Paris 13, et Roberto Di Cosmo, directeur de l'Irill, Inria, professeur à l'Université Paris-Diderot

[Teyran] Notions PC - Le mardi 10 mai 2016 de 09h00 à 10h00.

Les bases du tableur LibreOffice Calc
Téléchargement, installation et première approche du logiciel PAO Scribus
Réaliser une présentation type « diaporama » avec LibreOffice Impress

[Castelnau-le-Lez] Atelier de développement et programmation - Le mardi 10 mai 2016 de 10h00 à 12h00.

Cet atelier de développement est essentiellement axé sur les langages du Web : html, css (même si ce ne sont pas des langages à proprement parler) javascript et PHP, possibilité aussi d’utiliser Ajax, Jquery, Sqlite et MySql, mais il peut aussi aborder d’autres langage à la demande.
Notre équipe vous attend pour répondre à vos questions et satisfaire votre curiosité.
Entrée libre et gratuite sur inscription.

[Castelnau-le-Lez] Section GNU/Linux - Le mardi 10 mai 2016 de 10h00 à 12h00.

L’équipe de Montpel’libre vous propose une permanence de dépannages pour vous aider à vous familiariser avec votre système GNU/Linux au quotidien. Le contenu de l’atelier s’adapte aux problèmes des personnes présentes et permet ainsi d’adapter l’acquisition de nouvelles compétences au rythme de chacun.
Vous pourrez y aborder plusieurs thèmes :
Présentation de Linux

[Brignoles] Atelier Libre - Le mardi 10 mai 2016 de 18h30 à 21h30.

Les membres de l'association GULLIVAR (Groupe d'Utilisateurs de Logiciels Libres de l'Intérieur du Var) vous invitent à une soirée atelier / présentation logiciel libre qui aura lieu le 10 mai 2016, dans la salle des Saint Anges, chemin de San Sumian à Brignoles à partir de 18h30.
À 19h30, l'atelier / présentation.
Cette soirée est ouverte à tous, adhérents et sympathisants.

[Paris] Tuppervim #45 - Le mardi 10 mai 2016 de 20h00 à 22h00.

Le tuppervim est un évènement mensuel organisé dans les locaux de Mozilla.
Il a lieu un mardi du mois (généralement le premier).
Le texte suivant a été honteusement copié du site http://tuppervim.org

[Sète] Atelier Gimp et Jeu Vidéo Hedgewars - Le mercredi 11 mai 2016 de 10h00 à 17h00.

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

[Montpellier] Atelier Gimp - Le mercredi 11 mai 2016 de 17h00 à 18h30.

Retouchez vos images et vos photos grâce à un logiciel libre, puissant et gratuit, The GIMP, souvent comparé à Photoshop. Avec ce logiciel simple d’utilisation pour une prise en main rapide et basique, vous pourrez redimensionner vos images, transformer les couleurs, appliquer des filtres, modifier de nombreux paramètres et bien d’autres choses encore.
Plusieurs ateliers vous seront proposés :
Mardi 19 avril 2016 de 17h00 à 18h30

[Rennes] Apéro du Libre - Le mercredi 11 mai 2016 de 19h00 à 22h00.

L'association Actux vous donne rendez-vous pour un nouvel Apéro du Libre, mercredi 11 mai 2016 à partir de 19h, au Papier Timbré, 39 rue de Dinan à Rennes (au croisement de la rue d'Échange).
Les Apéros du Libre sont des rencontres conviviales autour d'un verre, pour discuter, échanger et parfois troller entre utilisateurs et curieux de logiciels et culture libres.
L'apéro est traditionnellement ponctué d'un quiz sans enjeu autour du Libre.

[Béziers] Conférence et débat : Le libre en bibliothèque - Le jeudi 12 mai 2016 de 09h00 à 17h00.

Montpel’libre et la Médiathèque André Malraux de Béziers vous proposent une conférence sur le thème : Comment la bibliothèque s’intègre à la communauté du libre ?
À la fin de notre intervention nous inviterons les participants à venir visiter l’espace de démonstration Jerry qui sera situé dans le corridor de la galerie, où vous pourrez y voir plusieurs machines, elles seront présentées à différents stades de jerryfication (machine complète, machine complète mais ouverte, pièces détachées, ordinateurs reconstitués fonctionnant sous systèmes d’exploitation libres…)
Bus lignes n°3, 19, 20 et 21 du réseau de transports urbains de la Communauté d’Agglomération Béziers Méditerranée vous amènent directement à la médiathèque.

[Paris] Langages et Outils pour la Fiabilité Logicielle - Le jeudi 12 mai 2016 de 14h00 à 19h00.

Troisième événement du Printemps de l'innovation Open Source, organisé par le GTLL de Systematic et l'Irill, présidé par Roberto Di Cosmo
Langages et outils pour la fiabilité logicielle - Printemps de l'Innovation Open Source
Programme dirigé par Emmanuel Chailloux (LIP6/UPMC, Irill), Roberto Di Cosmo (Irif, Irill, Inria, UPD), Fabrice Le Fessant (Inria, OCamlPro)

[Mauguio] Infolibres - Le jeudi 12 mai 2016 de 17h00 à 19h00.

L’équipe de Montpel’libre vous propose une permanence de dépannages pour vous aider à apprivoiser votre système GNU/Linux au quotidien. Le contenu de l’atelier s’adapte aux problèmes des personnes présentes.
Vous pourrez y aborder entre autre :
Tous les jeudis de 17h00 à 19h00 :

[St Julien du Serre] Install-Party 3 - Le jeudi 12 mai 2016 de 18h30 à 22h30.

Soirée "libère ton ordi" au bistro associatif de St Julien-du-Serre (près Aubenas).
Atelier d’accompagnement et d’échange, retours sur vos installations (surprises? difficultés? etc.).
Le jeudi 12 mai 2016 de 18h30 à 22h30

[Lyon] Jeudi du Libre - Le jeudi 12 mai 2016 de 19h00 à 21h00.

Un jeudi par mois l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre) organise une conférence.
Les thèmes abordés sont variés en alternant des sujets techniques avec d’autres qui concernant les utilisateurs et les citoyens.
Soirée de conférence débat sur le thème suivant : Priorité au logiciel libre : point d’étape de l’April

[Lyon] Atelier Découverte - Le jeudi 12 mai 2016 de 19h00 à 21h00.

L'Association Lyonnaise pour le Développement de l'Informatique Libre anime des ateliers pour s’initier aux logiciels libres.
Atelier pratique et de partage de connaissances sur kodi/xbmc
Animé par : Quentin Lavorel, membre de l'ALDIL

[Lyon] Ateliers « découverte du numérique libre » - Le jeudi 12 mai 2016 de 19h00 à 21h00.

Ce Jeudi 12 mai 2016 : ateliers : découverte du numérique libre (gratuit) de 19h00 à 21h00
L’EPN des Rancy de la Maison Pour Tous, situé 249 Rue Vendôme – 69003 Lyon propose avec l’association Aldil des cycles d’ateliers nommés les jeudis de découverte du numérique libre.
Cet atelier propose des petits ateliers pour s’initier à #Linux, au fonctionnement de l’ordinateur ou encore découvrir la programmation (programme annoncé d’un mois sur l’autre en fonction de l’évolution des attentes …)

[Paris] Soirée de Contribution au Libre - Le jeudi 12 mai 2016 de 19h30 à 23h00.

Parinux propose aux utilisateurs de logiciels libres de se réunir régulièrement afin de contribuer à des projets libres. En effet, un logiciel libre est souvent porté par une communauté de bénévoles et dépend d'eux pour que le logiciel évolue.
Nous nous réunissons donc tous les jeudis soirs dans un environnement propice au travail (pas de facebook, pas de télé, pas de jeux vidéos, pas de zombies).
Vous aurez très probablement besoin d'un ordinateur portable, mais électricité et réseau fournis.

[Lyon] Conférence jeudi du libre - Le jeudi 12 mai 2016 de 19h30 à 21h00.

Ce Jeudi 12 mai 2016 :  Priorité au logiciel libre : point d'étape de l'April (gratuit) de 19h30 à 21h00
L’EPN des Rancy de la Maison Pour Tous, situé 249 Rue Vendôme – 69003 Lyon propose avec l’association Aldil des cycles de conférences nommés les jeudis du libre.
Cette conférence traitera de ce sujet : Priorité au logiciel libre : point d'étape de l'April de 19h30 à 21h00

[Tours] L'auto-hébergement et pourquoi pas chez-vous ? - Le jeudi 12 mai 2016 de 20h00 à 22h00.

Touraine Data Network dans le cadre de son objet "la défense et la promotion du réseau des réseaux Internet" vous propose un atelier sur l'auto-hébergement.
Venez découvrir les principes de l'auto-hébergement de ses propres services numériques: Pourquoi et comment ? L'essayer et pourquoi pas l'adopter !
Des ateliers complémentaires peuvent être organisés sur d'autres créneaux (essentiellement pour la mise en pratique l'atelier du jeudi soir étant la pour la découverte).

[Margencel] Les nouveaux loups du Web avec débat - Le jeudi 12 mai 2016 de 20h00 à 22h00.

Le documentaire Les nouveaux loups du Web sera accompagné d'un débat. Y participeront notamment :
Jean-Yves ROYER, militant pour la promotion du numérique libre, membre de l'April,
Loic GERVAIS, animateur à l'espace public numérique de la Ville de Thonon-les-Bains,

[Montpellier] Permanence « Les logiciels libres, parlons-en ! » - Le vendredi 13 mai 2016 de 17h00 à 19h00.

Le Faubourg Marché, qu’est-ce que c’est ?
Le Faubourg Marché est une permanence partagée qui permet aux associations d’accueillir ensemble, les publics de ces associations une fois par semaine, le vendredi entre 17h00 et 19h00 (ou au delà sous réserve d’accord préalable), au 19, rue du Faubourg de Nîmes, 34000 Montpellier.
L’idée est de s’informer et d’informer les adhérents des diverses associations sur le fonctionnement du lieu et des associations, et notamment sur les 5 partenaires qui l’animent et lui permettent ainsi d’exister (autour.com, L’Accorderie, enercoop, modulauto, La Nef). Lors de cette permanence partagée vous pourrez rencontrer les associations La Graine (monnaie locale de Montpellier), éCOhabitons, Montpellier à pied, et bien sûr Montpel’libre.

[Marseille] Repair Café - Le vendredi 13 mai 2016 de 17h30 à 19h30.

Réparez vos objets cassés !
Pour lutter contre l’obsolescence programmée et favoriser le recyclage créatif,  Repair Cafés et l’association CercLL (CercLL d’Entraide et Réseau Coopératif autour des Logiciels Libres).
Le vendredi 13 mai 2016, de 17h30 à 19h30, réparons ensemble nos outils informatiques, chez Tulavu l'Artyshop 5 rue Félix Éboué Marseille 13002

[Marseille] Soirée mensuelle - Le vendredi 13 mai 2016 de 19h00 à 23h30.

Le PLUG organise une soirée le vendredi 13 mai à partir de 19h.
Venez parler de logiciel libre, présenter vos bidouilles, chercher des réponses à vos questions, etc.
De l’expert au débutant, tout le monde, tous les usages, toutes les expériences sont bienvenus.

[Marseille] Mapathon Missing Maps - Le vendredi 13 mai 2016 de 19h00 à 22h00.

Venez découvrir comment contribuer à OpenStreetMap, le "Wikipedia de la carte", durant un « mapathon » !
(un événement convivial où l'on se retrouve pour cartographier, échanger et apprendre à utiliser les outils permettant de contribuer à OSM).
Cet événement s'inscrit dans le cadre de l'initiative globale Missing Maps, projet humanitaire qui vise à cartographier en amont les parties du mondes vulnérables aux catastrophes naturelles, crises sanitaires, environnementales, aux conflits et à la pauvreté.

[Le Tholonet] Réunion mensuelle de l'Axul - Le vendredi 13 mai 2016 de 20h00 à 23h55.

Les membres de l'Axul (Association du Pays d'Aix des Utilisateurs de Linux et des Logiciels Libres) vous invitent à leur réunion mensuelle qui aura lieu le vendredi 13 mai de 20h00 à 23h55 au 1er étage du centre culturel Georges Duby du Tholonet (859 avenue Paul Julien, à proximité de la place du marché) à Palette, premier village sur la D7n au Sud-Est d'Aix.
Ordre du jour
20h00 - 20h15 : Accueil

[Villeneuve d'Ascq] Libre à Vous - Le samedi 14 mai 2016 de 09h00 à 12h00.

Vous souhaitez tester GNU/Linux sur votre ordinateur, vous recherchez un logiciel pour une fonction précise, des conseils ou de l'aide sur les logiciels libres ?
Libre à Vous est une permanence destinée à vous faciliter l'utilisation de l'informatique. Vous repartirez avec « le plein » de logiciels libres, fiables, évolutifs, performants et gratuits.
C'est chaque samedi matin au Centre d'Infos Jeunes à la ferme Dupire, 80 rue Yves Decugis à Villeneuve d'Ascq (métro Triolo) de 9h00 à 12h00.

[Saint-Aunès] Permanence Emmabuntüs et Logiciels Libres - Le samedi 14 mai 2016 de 10h00 à 18h00.

Dans le cadre de notre partenariat avec la communauté Emmaüs, l’équipe de Montpel’libre vous donne rendez-vous chez Emmaüs pour une journée d’information et de sensibilisation à l’utilisation des Logiciels Libres. Nous vous présenterons Ubuntu et bien sûr l’une de ses dérivées Emmabuntüs.
Assistance à la vente sur les aspects techniques
Vous désirez un ordinateur à votre service ?

[Rezé] Carto party OSM - Le samedi 14 mai 2016 de 11h00 à 20h00.

Le principe d’une carto party OSM est de participer à la carte Open Street Map, libre de droit et collaborative.
Site de la carte : http://www.openstreetmap.org
Les sessions seront ouvertes y compris aux débutants.

[Fontenay-le-Fleury] Découvrir les scripts Bash - Le samedi 14 mai 2016 de 14h00 à 17h00.

Root66 organise un atelier samedi 14 mai 2016 à 14 hrs qui sera consacré à la découverte des scripts (programmes) Bash.
Quelques définitions et surtout de nombreux exemples allant du plus simple au plus élaboré ainsi qu'un support « papier » permettront aux visiteurs de découvrir ces outils si utiles, de les mettre en pratique, ou encore de les modifier pour les adapter à leurs besoins spécifiques.
Tout visiteur devra impérativement venir avec son ordinateur !!!

[Ivry sur Seine] Cours de l'Ecole du Logiciel Libre - Le samedi 14 mai 2016 de 14h00 à 18h00.

Présentation de l'E2L
Quel est le rôle de l'école du logiciel libre ?
Tout d'abord, ce n'est pas une école comme les autres. Elle n'a pas d'établissement fixe, pas de cours de récréation, pas de carte d'étudiant, ni de diplôme de fin d'année.

[Marseille] Initiation basique d’une distribution Linux - Le samedi 14 mai 2016 de 14h30 à 18h00.

L’association CercLL vous invite à l’ Atelier du Samedi Libre qui se déroule le samedi 14 mai avril 2016 de 14h30 à 18h00, à la Fabulerie 4 rue de la Bibliothèque 13001 Marseille.
Ces ateliers se déroulent, en général, sur une séquence hebdomadaire, de 2 à 3 séances de travail et sur un thème déterminé.
Comme le mot atelier le laisse présumer, dans ce cadre, nous proposons une approche pratique des outils libres.

[Paris] Apéro Parisien du Libre - Le dimanche 15 mai 2016 de 20h00 à 23h00.

Comme chaque 15 de chaque mois, Parinux vous convie à l'Apéro Parisien du Libre (APL).
Cet événement aura donc lieu à l'endroit suivant :
La Belle Equipe 92 rue de Charonne, 75011 Paris Métro: Charonne - ligne 9 Faidherbe-Chaligny - ligne 8

Télécharger ce contenu au format Epub

Lire les commentaires

Je crée mon jeu vidéo E16 : Nouveautés

6 mai, 2016 - 15:35

«Je crée mon jeu vidéo» est une série d'articles sur la création d'un jeu vidéo, depuis la feuille blanche jusqu'au résultat final. On y parlera de tout : de la technique, du contenu, de la joie de voir bouger des sprites, de la lassitude du développement solitaire, etc. Vous pourrez suivre cette série grâce au tag gamedev.

Dans l'épisode 15, j'arrêtais… les systèmes à entités. Et j'avais un peu fait miroiter des nouveautés. Donc dans cet épisode, on va en parler de ces nouveautés. Depuis ce dernier épisode qui date quand même d'août dernier, je n'ai pas avancé d'un iota sur Akagoria même (ce qui veut dire que vous auriez pu avoir cet épisode depuis des mois !).

Sommaire

Il y a beaucoup de nouvelles fonctionnalités, je vais tenter à chaque fois de décrire la manière dont j'ai procédé pour les coder (qui n'est sans doute pas parfaite). J'ai mis cette nouvelle version d'Akagoria sur un dépôt github. Comme annoncé au dernier épisode, c'est une refonte complète du code, je suis donc reparti d'un dépôt vierge.

Fonctionnalités Messages et autre données

Tout d'abord, une grosse avancée est d'avoir mis beaucoup de données dans des fichiers textes au format YAML. Pour cela, j'ai fait un DataManager qui est responsable du chargement de toutes les données au démarrage, ce qui fait que tout le code lié à l'analyse lexicale du YAML est restreint à cette classe. Ensuite, on peut accéder aux données via des méthodes simples qui prennent en paramètre des clefs.

On verra par la suite que les dialogues, par exemple, sont dans ces fichiers textes et ce que ça peut apporter. Ici, je vais commencer par parler des différents messages qu'on peut avoir. Il y a d'abord tous les messages qui apparaissent dans l'interface du jeu, ils sont désormais tous dans un fichier et on peut récupérer les messages via une clef. Ensuite, il y a les messages de notification, pratiques pour signaler diverses choses au joueur : quand il vient d'arriver dans une nouvelle zone, quand il a gagné un niveau, quand il approche d'un danger, etc.

Tous ces messages de notification sont gérés dans MessageManager (ouais, je kiffe les managers) qui va se charger d'afficher les messages le temps voulu.

Voici par exemple le message de bienvenue :

Dialogues et traduction

Pour les dialogues, c'est quasiment pareil, ils sont tous dans un fichier. L'intérêt, c'est qu'il n'y a qu'une seule source pour les chaînes à traduire : ces fichiers. Le but est de n'avoir aucune chaîne à traduire dans le code. Pour l'instant, j'y arrive bien. Après, j'utilise une astuce. En effet, les chaînes de caractères dans un fichier YAML peuvent être entourées soit de guillemets simples ', soit de guillemets doubles ". Bon, en fait, il y a des différences entre les deux mais on les oublie pour l'instant. Par convention, les chaînes à traduire sont placées entre guillemets doubles. Par conséquent, on peut appeler xgettext en lui faisant croire que c'est du C et qu'il doit analyser toutes les chaînes de caractère, ça ne pose aucune problème. Et on se retrouve avec un fichier de traduction classique.

Vous aurez remarqué que les messages des captures d'écran sont en français. J'ai réalisé moi-même la traduction des quelques chaînes qui existent jusqu'à présent. Ça m'a permis de voir que ça marchait correctement. Techniquement, dans le code, j'ai utilisé Boost.Locale qui est capable de lire les fichiers générés par gettext. C'est très facile à utiliser et comme toutes mes chaînes sont dans des fichiers, j'ai juste besoin de faire la traduction au chargement des fichiers.

Une des difficultés a été de passer la chaîne traduite à SFML. En effet, SFML est un peu bête. Pour lui, une std::string contient uniquement de l'ASCII plutôt que de l'UTF-8. Et donc, pour que SFML comprenne que la chaîne utilisée contient des caractères hors de l'ASCII, il est obligatoire de la transformer en UTF-32 ! Heureusement, SFML fournit des fonctions de conversion. Ça reste assez pénible. J'ai fait un bout de code qui permet la conversion facilement. Ce choix de SFML est surprenant à l'heure où l'UTF-8 est partout.

En jeu, voilà à quoi ressemble un dialogue.

Le gros rectangle orange est un personnage non-joueur (faites travailler votre imagination). Le rond rouge indique qu'on peut interagir avec lui via un dialogue simple (c'est-à-dire qu'il ne donne pas de quête, il veut juste parler). De la même manière que pour les messages, il existe un DialogManager qui permet de faire avancer les dialogues et de les afficher. À la fin du dialogue, un événement de jeu est envoyé pour permettre éventuellement de modifier l'état global du jeu. Actuellement, la fin du dialogue avec ce premier personnage non-joueur charge un deuxième dialogue pour ce personnage non-joueur (qui est un résumé du premier dialogue). On verra où est codée cette logique un peu plus loin.

Une limite actuelle est que les sauts de lignes doivent être placés manuellement dans le texte. Pour aider à bien placer les sauts de ligne et à vérifier que le texte tient bien dans le rectangle de dialogue, j'ai fait un petit utilitaire appelé akagoria_dialog_validator qui va passer en revue tous les dialogues, en prenant en compte les traductions. Bon, ce n'est pas parfait, il y a de la duplication de code par rapport au jeu (danger !) mais ça fonctionne pour l'instant.

Sauvegarde

Un point important dans un jeu, ce sont les sauvegardes. En particulier dans un RPG à monde ouvert où il faut sauvegarder tout l'état du jeu actuel pour pouvoir le reprendre plus tard. Je me suis donc attaqué à cet aspect assez tôt de manière à voir les problèmes assez vite. J'ai utilisé Boost.Serialization, qui est un peu vieux par rapport à d'autres bibliothèque de sérialisation comme cereal qui gère le C++11, mais elle fait le travail très correctement.

Ensuite, il a fallu décider quoi sauvegarder. Pour l'instant, ça reste assez simple. J'ai sauvegardé les informations concernant le héros (sa position et ses points de vie/magie), les informations concernant les personnages non-joueurs (position, dialogue en cours), et les prérequis (dont on va parler un peu plus loin). J'utilise pour l'instant un format texte pour bien vérifier que j'ai toutes les informations dont j'ai besoin. Plus tard, je pourrai passer à un format binaire très facilement grâce à Boost.Serialization.

Pour finir une petite interface permet de charger et sauvegarder. J'ai volontairement limité les possibilités de sauvegarde à trois emplacements pour deux raisons : d'une part, je trouve que ça fait un peu vieille école ce genre de limitation, ça a un certain charme, j'aime bien ; d'autre part, ça évite de devoir taper à la main un nom puisque je garde à l'esprit que l'utilisateur peut vouloir utiliser une manette pour jouer. De toute façon, d'après mon expérience, trois emplacements sont très largement suffisants.

Visuellement, ça ressemble à l'image suivante qui est issue de l'écran de démarrage.

Dans le futur, j'aimerais indiquer le nom de la région dans laquelle se trouve le joueur pour l'aider à différencier les trois sauvegardes (en plus de la date).

UI et pilotage

Vous avez vu tout un tas de petits bouts d'interface utilisateur. Ces interfaces ont une couleur bien connue des fans de RPG. Techniquement, j'ai essayé de ne pas éparpiller le code qui affiche ces interfaces. J'ai donc fait tout un ensemble de classes qui gèrent les interfaces. Le code contient beaucoup de constantes pour faciliter les modifications. Ces classes sont ensuite utilisées dans les différents gestionnaires (managers) correspondants et sont affichées au besoin. Par exemple, s'il y a un dialogue en cours, on affiche l'interface de dialogue.

Pour piloter tout ça, ça n'a pas été simple. J'utilise une sorte de machine à état pour déterminer quoi faire quand. Toute la logique est encapsulée dans une classe de pilotage du jeu qui intervient directement dans la boucle de jeu. L'idée est que le personnage peut être dans différent mode : marche, dialogue, sauvegarde. Pour chaque mode, les touches n'ont pas la même utilité : haut et bas servent à avancer et reculer en mode marche, tandis qu'ils servent à choisir l'emplacement de sauvegarde en mode sauvegarde. Le pilote de jeu gère tout ça de manière transparente et fait passer d'un mode à l'autre en fonction des actions du joueur. Pour l'instant, la coordination reste assez simple. À noter qu'il y a un autre pilote pour l'écran de démarrage, ce qui montre que cette technique est assez flexible.

En jeu, ce sont les différents gestionnaires qui détectent qu'il faut passer dans un autre mode. Par exemple, les sauvegardes sont réalisées près d'un autel en forme d'étoile et avec des particules bleu ciel. Si on presse la touche action (X pour l'instant) suffisamment près d'un autel de ce type, le dialogue de sauvegarde apparaît.

Pour information, l'autre autel (celui forme de spirale avec des particules rouges) permet de remettre des points de vie. J'ai réalisé ces dessins moi-même avec Inkscape. Petit aparté, la vue de dessus est un vrai challenge (qui me plaît beaucoup), il faut imaginer comment donner une représentation horizontale à des objets qu'on a l'habitude d'imaginer verticalement. J'ai fait au mieux pour ces autels, mais j'aimerais bien savoir si ça rend suffisamment bien. N'hésitez pas à me le dire dans les commentaires.

Prérequis et événements

Une fonctionnalité importante pour pouvoir gérer le cours du jeu est le système de prérequis. Les prérequis permettent de savoir si une action est possible ou pas. Techniquement, c'est juste un ensemble d'identifiants. Pour l'instant, les prérequis peuvent être utilisés directement sur la carte avec Tiled sur des événements. Il était possible jusqu'à présent de déclencher un événement de jeu quand le personnage était dans une certaine zone. Cette fonctionnalité est utilisée pour changer d'étage par exemple et descendre dans des souterrains. Dorénavant, il est possible d'ajouter des prérequis sur la zone. Si le joueur a ces prérequis, alors l'événement de jeu est envoyé, sinon rien ne se passe.

Ce mécanisme va servir à implémenter une partie de la logique du jeu. Par exemple, on va pouvoir empêcher le joueur d'accéder à des endroits clos en mettant un prérequis qui sera accordé si le joueur réalise une certaine action. Les possibilités sont déjà assez importantes. La seule limitation que je vois pour l'instant est qu'il n'est pas possible de coder des conditions complexes puisque ces prérequis s'apparentent à des booléens. Je verrai bien à l'usage.

Un exemple d'utilisation est le message de bienvenue. En fait, le personnage commence sur une zone d'événement avec un prérequis qu'on donne automatiquement au chargement initial du jeu. Cet événement va afficher le message de bienvenue et le prérequis va être supprimé ce qui empêchera le message de bienvenue de réapparaître quand on repassera sur la zone.

Histoire

Dernière fonctionnalité du jour, le déroulement de l'histoire. C'est une partie haut niveau qui est généralement implémentée soit en utilisant des fichiers de configuration, soit en utilisant un langage de script type Lua pour pouvoir gérer des situations complexes avec des bouts de code. Pour ma part, actuellement, je reste avec du C++. J'ai mis la logique de l'histoire dans sa propre classe. Cette classe est simplement à l'affût des événements de jeu, comme la fin d'un dialogue, et met à jour l'état global du jeu (ajout de prérequis, apparition de personnages, ajout de dialogue à des personnages, etc).

Je ne compte pas introduire de fichier de configuration ni de langage de script pour cette partie. Dans le premier cas, il me semble que les possibilités seraient un peu trop limitées. Dans le second cas, il faudrait faire la traduction depuis les objets du jeu vers le langage de script et vice-versa, ce qui demanderait beaucoup de travail. Bref, je suis obligé de recompiler quand je modifie mon histoire mais ça me convient pour l'instant.

Et la suite ?

La suite, ça s'annonce funky. Déjà parce que je suis papa depuis quelques semaines et que ça change la vie (et le temps qu'on peut consacrer à un jeu qu'on développe sur son temps libre). Et ensuite, parce qu'il y a beaucoup de choses en attente. Je n'en parle pas maintenant (ouais, j'adore le suspense), mais il y a déjà trois épisodes en cours d'écriture (dont certains ont été commencés depuis un bout de temps) et je pense qu'il y en aura bientôt un quatrième ! Bref, la série ne s'arrête pas, le jeu non plus mais ça avance à son rythme.

Télécharger ce contenu au format Epub

Lire les commentaires

G'MIC 1.7.1 : quand les fleurs bourgeonnent, les filtres d'images foisonnent.

5 mai, 2016 - 10:57

La version 1.7.1 « Spring 2016 » de G'MIC (GREYC's Magic for Image Computing), infrastructure libre pour le traitement d'images, a été publiée récemment, le 26 avril 2016. Nous continuons notre série de présentation des possibilités et des avancées de ce logiciel libre, avec la description des nouveautés et des améliorations notables introduites depuis notre dernière dépêche sur ce sujet, datant de décembre 2015, qui avait été rédigée à l'occasion de la sortie de la version 1.6.8. Trois versions successives ont été publiées depuis (les versions 1.6.9, 1.7.0 et 1.7.1).
La deuxième partie de la dépêche détaille quelques uns des nouveaux filtres et effets disponibles dans le greffon G'MIC pour GIMP, qui reste l'interface de G'MIC la plus utilisée à ce jour. Nous abordons aussi les autres évolutions diverses du projet comme l'amélioration et la création d'autres interfaces d'utilisation ainsi que les avancées « techniques » réalisées au cœur du framework.

Sommaire 1. Le projet G'MIC en quelques mots

G'MIC est un projet libre ayant vu le jour en août 2008, dans l'équipe IMAGE du laboratoire GREYC (Unité Mixte de Recherche du CNRS située à Caen / France). Cette équipe est composée de chercheurs et d'enseignant-chercheurs spécialisés dans les domaines de l'algorithmique et des mathématiques du traitement d'images. G'MIC est distribué sous licence libre CeCILL (compatible GPL) pour différentes plateformes (Linux, Mac et Windows). Il fournit un ensemble d'interfaces utilisateurs variées pour la manipulation de données images génériques, à savoir des images ou des séquences d'images hyperspectrales 2D ou 3D à valeurs flottantes (ce qui inclut bien évidemment les images couleurs « classiques »).


Fig.1.1. Logo et (nouvelle) mascotte du projet G'MIC, logiciel libre pour le traitement d'image.

Notons qu'une première nouveauté relative au projet concerne Gmicky, la mascotte, qui a été entièrement redessinée, par David Revoy, artiste français bien connu des amoureux du graphisme libre, puisqu'il est à l'origine du fameux webcomics Pepper&Carott. Un grand merci à lui ! (à comparer avec l'ancien dessin de Gmicky toujours visible ici).

G'MIC s'est fait connaître essentiellement via son greffon disponible pour le logiciel GIMP, apparu en 2009, greffon qui propose plus de 460 différents filtres et effets à appliquer sur vos images, et qui ressemble aujourd'hui à ceci :


Fig.1.2. Aperçu de la version 1.7.1 du greffon G'MIC pour GIMP.

Mais G'MIC n'est pas qu'un greffon pour GIMP. Il fournit également une interface en ligne de commande, qui peut s'utiliser de manière complémentaire aux outils CLI proposés par ImageMagick ou GraphicsMagick. Cette interface CLI est, comme on peut l'imaginer, l'interface la plus puissante et la plus flexible du framework. Il existe aussi un service web G'MIC Online associé, pour appliquer des effets sur vos images directement à partir d'un navigateur web. D'autres interfaces basées sur G'MIC sont également développées (ZArt, un greffon pour Krita, des filtres pour Photoflow…) mais leur usage reste pour le moment plus confidentiel. Toutes ces interfaces se basent sur les bibliothèques C++ CImg et libgmic qui sont portables, thread-safe et multi-threadées (via l'utilisation d'OpenMP). Aujourd'hui, G'MIC possède plus de 900 fonctions différentes de traitement d'images, toutes paramétrables, pour une bibliothèque de seulement 6 Mio correspondant à un peu plus de 150 kloc de code source. Les fonctionnalités proposées couvrent un large spectre du traitement d'images, en proposant des algorithmes pour la manipulation géométrique, les changements colorimétriques, le filtrage d'image (débruitage, rehaussement de détails par méthodes spectrales, variationnelles, non-locales…), l'estimation de mouvement / le recalage, l'affichage de primitives (jusqu'aux objets 3d maillés), la détection de contours/la segmentation, le rendu artistique, etc. C'est donc un outil très générique aux usages variés, très utile d'une part pour convertir, visualiser et explorer des données images, et d'autre part pour construire des pipelines personnalisés et élaborés de traitements d'images (voir ces transparents de présentation du projet pour plus d'information sur les motivations et les buts de ce projet).

2. Sélection de nouveaux filtres et effets

Nous proposons ici un résumé des nouveaux filtres et effets les plus marquants récemment développés, et illustrons leur usage depuis le greffon G'MIC pour GIMP. Ces filtres sont bien sûr utilisables également depuis les autres interfaces disponibles (notamment avec gmic, l'interface en ligne de commande). Nous nous sommes restreints aux filtres les plus intéressants à expliquer et illustrer, car en réalité, ce sont plus d'une vingtaine de nouveaux filtres et effets qui ont fait leur apparition depuis la version 1.6.8.

2.1. Création de peintures à partir de photographies

Le filtre Artistic / Brushify tente de transformer une image en peinture. L'idée ici est de simuler (de manière simplifiée) le processus de création d'une peinture sur une toile blanche. On fournit une image modèle à l'algorithme, qui va dans un premier temps, analyser sa géométrie (principalement le contraste et l'orientation des contours), puis tenter de la repeindre en utilisant comme outil un unique pinceau (brush en anglais, d'où le nom de l'effet) qui va s'orienter localement pour s'adapter à la géométrie des contours de l'image.
En simulant suffisamment de coups de pinceaux, on obtient une image « peinte » plus ou moins fidèle à l'image modèle d'origine, en fonction de la forme et de la taille du pinceau utilisé, du nombre d'orientations autorisées, etc. Tout ceci étant réglable par l'utilisateur comme des paramètres de l'algorithme : ce filtre permet donc d'obtenir une grande variété de rendus différents.


Fig.2.1.1. Apercu du filtre « Brushify » dans le greffon G'MIC pour GIMP. La brosse qui va être utilisée par l'algorithme est visible en haut à gauche.

L'animation ci-dessous illustre cette grande diversité de résultats, avec le traitement d'une même image d'entrée (photographie d'une tête de lion), en variant les types de brosses et les paramètres utilisés par l'algorithme. Brushify peut être assez coûteux en termes de temps de calcul (suivant le nombre de coups de pinceaux à simuler), même si l'implémentation de l'algorithme est déjà parallélisée (les différents coeurs de calcul pouvant donner des coups de pinceaux simultanément).


Fig.2.1.2. Quelques exemples de rendus du filtre « Brushify » à partir d'une même image d'entrée, en utilisant des brosses différentes.

À noter qu'il est amusant d'invoquer ce filtre à partir de la ligne de commande (grâce à la fonction -brushify disponible dans gmic), pour traiter des lots d'images et des vidéos (un exemple de vidéo « brushifiée »).

2.2. Reconstruction de données manquantes à partir d'échantillons épars

G'MIC se dote d'une nouvelle fonctionnalité de reconstruction de données manquantes dans des images. Nous avons déjà évoqué ce problème classique de reconstruction en traitement d'images dans des dépêches précédentes (avec l'inpainting comme illustré ici ou encore ici). La nouvelle méthode d'interpolation ajoutée suppose quant à elle que l'on ne dispose que de données connues éparses, par exemple quelques pixels de couleurs dispersés ça et là dans l'image, plutôt que des blocs entiers de données contiguës connues. L'analyse et la reconstruction de la géométrie des structures présentes dans l'image devient alors un problème particulièrement difficile.

La nouvelle fonction -solidify de G'MIC permet de reconstruire des données images denses à partir de quelques points épars connus, en utilisant une technique de reconstruction multi-échelle basée sur les EDP de diffusion. La figure ci-dessous illustre les capacités de cette méthode, avec un exemple de reconstruction d'une image de goutte d'eau. On ne garde ici que 2,7% des données image (ce qui est vraiment peu !) et l'algorithme reconstruit une image entière, qui ressemble à celle d'origine (même si, bien entendu, tous les détails de l'image originale n'ont pas été reconstruits complètement). Plus on dispose d'échantillons, plus on est capable de reconstruire des détails.


Fig.2.2.1. Reconstruction d'une image à partir d'un échantillonnage épars.

Cette technique de reconstruction étant assez générique, plusieurs filtres différents se basant sur celle-ci ont pu être élaborés et ajoutés dans G'MIC :

  • Le filtre Repair / Solidify permet d'appliquer l'algorithme de reconstruction de manière directe, en reconstruisant par interpolation les zones marquées comme transparentes dans les images d'entrées. L'animation ci-dessous montre l'application de ce filtre pour la réalisation d'un effet de flou artistique sur les bords d'une image.


Fig.2.2.2. Aperçu du filtre « Solidify » dans le greffon G'MIC pour GIMP.

D'un point de vue artistique, les possibilités de ce filtre sont nombreuses. Il est par exemple très utile pour générer simplement des dégradés de couleurs de formes complexes dans des images, comme le montre les deux exemples de la figure ci-dessous (ou encore cette vidéo, qui détaille le processus)


Fig.2.2.3. Utilisation du filtre « Solidify » de G'MIC pour créer simplement des dégradés de couleurs aux structures géométriques complexes (images d'entrées à gauche, résultats du filtre à droite).

  • Le filtre Artistic / Smooth abstract reprend le principe utilisé pour l'image de la goutte d'eau vu précédemment : il échantillonne une image de manière éparse, en plaçant des points clés préférentiellement sur les contours présents dans celle-ci, puis tente de reconstruire l'image entière à partir de ces échantillons seuls. Si le nombre d'échantillons est faible, le filtre va génèrer une image continue par morceaux qui peut donc être vue comme une abstraction lisse de l'image d'origine (voir la figure ci-dessous).


Fig.2.2.4. Aperçu du filtre « Smooth abstract » dans le greffon G'MIC pour GIMP.

  • Le filtre Rendering / Gradient [random] permet quant à lui la création de fonds colorés. Le filtre plaçe des points de couleurs aléatoirement sur une image, et les interpole ensuite spatialement avec l'algorithme de reconstruction. On obtient facilement des fonds d'écrans psychédéliques composés de dégradés de couleurs qui partent dans toutes les directions (voir figure ci-dessous).


Fig.2.2.5. Aperçu du filtre « Gradient [random] » dans le greffon G'MIC pour GIMP.

  • Simulation de films argentiques : ce nouvel algorithme de reconstruction d'images à partir d'échantillons épars a également une grande utilité pour les nombreux filtres de simulation de films argentiques, présents dans G'MIC depuis quelques années déjà. La section Film emulation propose en effet un grand choix de filtres dont le but est d'appliquer des transformations colorimétriques, pour simuler le rendu qu'aurait eu une photo numérique si elle avait été prise avec un appareil argentique muni d'un certain type de pellicule. La figure ci-dessous montre par exemple quelques unes des 300 transformations colorimétriques qu'il est possible d'appliquer à partir de G'MIC.


Fig.2.2.6. Quelques unes des transformations colorimétriques disponibles dans G'MIC (parmi + de 300).

D'un point de vue algorithmique, ces algorithmes de transformation colorimétrique sont très simples à mettre en œuvre : on dispose pour chacune des 300 transformations d'une HaldCLUT, c'est-à-dire d'une fonction définissant pour chaque couleur (R,G,B) des pixels de l'image originale, une nouvelle couleur (R,G,B) à attribuer aux pixels de l'image résultante. Cette fonction n'étant pas forcément analytique, une HaldCLUT est généralement stockée sous forme discrétisée, et donne donc le résultat de la transformation colorimétrique pour toutes les couleurs possibles du cube RGB (soit 224 = 16777216 valeurs si on travaille avec une précision de 8bits par composante). La figure ci-dessous illustre la façon dont une transformation colorimétrique basée HaldCLUT s'applique sur l'ensemble des couleurs du cube RGB.


Fig.2.2.7. Principe d'une transformation colorimétrique utilisant une HaldCLUT.

Autant dire que, même en sous-échantillonnant l'espace RGB (sur 6 bits par composante par exemple) et en compressant sans perte le fichier de transformation colorimétrique correspondant, on se retrouve vite avec un fichier qui est relativement volumineux (entre 200 et 300 Kio par fichier). Multipliez ce nombre par 300 (le nombre de transformations colorimétriques disponibles dans G'MIC), et vous arrivez à un total de 85 Mio environ pour stocker l'ensemble de ces transformations. Un peu lourd à diffuser pour de simples filtres de changement de couleurs !

L'idée était donc de développer une méthode de compression avec pertes qui pourrait s'adapter spécifiquement aux données de type HaldCLUT, c'est-à-dire à des fonctions volumiques discrétisées à valeurs vectorielles, qui sont par nature relativement lisses par morceaux. C'est donc ce qui a été fait, en se basant sur l'algorithme de reconstruction de données images à partir d'échantillons épars. Cet algorithme fonctionne en effet avec des données images pouvant être volumiques. Il suffit donc d'extraire un nombre suffisant de points-clés significatifs dans le cube RGB pour permettre la reconstruction d'une HaldCLUT entière, avec une erreur de reconstruction suffisamment faible pour que le résultat de la transformation colorimétrique résultante soit indistinguable de la transformation colorimétrique originale.


Fig.2.2.8. Principe du codage et de la reconstruction d'une HaldCLUT à partir d'un nuage de points clés définit dans le cube RGB.

Donc, au lieu de stocker l'ensemble des couleurs d'une HaldCLUT, on n'en stocke plus qu'un sous-ensemble épars représenté par une liste de { point-clés, couleurs }, et on laisse l'algorithme de reconstruction faire son travail pour regénérer la HaldCLUT entière, avant de l'appliquer sur l'image à modifier. Suivant la complexité des HaldCLUTs à appliquer, plus ou moins de points clés sont nécessaires (ça peut varier de 30 à 2000).
Résultat des courses : On passe de 85 Mio pour le stockage des 300 HaldCLUTs de G'MIC à 850 Kio, soit un gain de compression de 99% ! D'un point de vue pratique, ce nouveau fichier décrivant toutes les HaldCLUTs compressées est facilement distribuable et installable avec le greffon, et un utilisateur peut donc appliquer toutes les transformations colorimétriques de G'MIC en restant hors-ligne (alors qu'auparavant, chaque HaldClUT était téléchargée lors de l'application d'une nouvelle transformation colorimétrique).

Ce nouvel algorithme de reconstruction d'images à partir d'échantillons épars a donc beaucoup d'intérêt, et nul doute qu'il sera réutilisé dans d'autres filtres prochainement.

2.3. Rendre des textures périodiques

Le filtre Arrays & tiles / Make seamless [patch-based] permet de transformer une texture d'entrée en la rendant tuilable, c'est-à-dire en permettant sa répétition sous forme de tuiles le long des axes horizontaux et verticaux, sans que l'on distingue de discontinuités visibles lorsque les bords de deux tuiles adjacentes sont mises bout à bout. C'est une opération qui peut s'avérer très difficile à réaliser si la texture d'entrée est complexe, par exemple avec peu d'auto-similarité, ou avec des changements de luminosités flagrants.
C'est le cas de l'exemple illustré dans la figure ci-dessous, avec une texture chair de saumon présentée sous forme de 4 tuiles disposées en configuration 2x2. L'éclairage de cette texture varie de gauche à droite (du plus sombre vers le plus clair). L'algorithme proposé permet ici de transformer la texture pour que le recollement devienne quasiment invisible. Notons que l'on cherche ici à préserver la texture d'entrée le plus possible, contrairement à l'algorithme de re-synthèse de texture qui était déja disponible, et qui cherchait plutôt à recréer de toute pièces une instance aléatoire d'une texture de taille quelconque ayant les mêmes caractéristiques que la texture modèle. Essayez de réaliser ceci manuellement, et vous vous rendrez compte de la difficulté du problème (qui pourrait paraître simple au premier abord).


Fig.2.3.1. Aperçu du filtre « Make Seamless » du greffon G'MIC pour GIMP, pour rendre des textures tuilables.

À noter que la création de ce nouveau filtre d'aide au tuilage a été suggérée par rewind dans les commentaires de la dépêche précédente sur G'MIC ! Les grands esprits se rencontrent sur LinuxFr.org :)
On peut imaginer de belles applications à ce type de filtres, notamment dans le domaine du jeu vidéo où tuiler des textures pour créer de grands mondes virtuels est monnaie courante. Un autre exemple de tuilage d'une texture complexe de mousse en (tuilage 2x2) est présenté dans l'animation ci-dessous.


Fig.2.3.2. Résultat du filtre « Make seamless » de G'MIC pour rendre tuilable une texture de mousse.

2.4. Décomposition d'une image en niveaux de détails

Un nouveau filtre de décomposition d'image en plusieurs niveaux de détails nommé Details / Split details [wavelets] a également été ajouté. Il implémente un algorithme de décomposition en ondelettes à trous. Pour les connaisseurs, c'est exactement le même algorithme que celui qui est proposé dans le greffon populaire Wavelet Decompose pour GIMP, avec ici en plus, une prévisualisation des échelles de détails et une implémentation parallélisée, tirant parti du multi-coeurs. La figure ci-dessous illustre son action sur un portrait. L'application de ce filtre décompose une image en plusieurs calques de sortie, de telle manière à ce que chaque calque contienne les détails de l'image à une échelle donnée, et que l'ensemble de ces calques de sortie superposés redonne bien évidemment le rendu de l'image d'origine.


Fig.2.4.1. Aperçu du filtre de décomposition d'image par ondelettes dans le greffon G'MIC pour GIMP.

On peut ainsi travailler sur chaque calque séparément, et ne modifier les détails de l'image que pour une échelle donnée. Il y a de nombreuses applications à ce type de décomposition, l'une des plus spectaculaires étant la possibilité de retoucher la peau dans des photos de portraits : les imperfections de la peau se retrouvent généralement sur les calques correspondant à des échelles de détails moyens, alors que la texture naturelle de la peau (les pores) se retrouvent sur les échelles de détails fins, et on peut donc sélectivement effacer les imperfections tout en conservant une texture de peau naturelle après retouche (voir l'animation ci-dessous ou encore ce lien pour un tutoriel détaillé de la procédure, en utilisant GIMP).
Vous avez sans doute déjà vu des photos publicitaires de mannequins ayant une peau exagérément lisse (façon poupée barbie). Dans ce cas, vous savez maintenant que l'infographiste responsable a vraiment fait une retouche de goret ! (le bien-fondé de l'utilité de telles retouches est un autre débat dans lequel on ne se risquera pas ici).


Fig.2.4.2. Un exemple d'utilisation du filtre de décomposition d'image en ondelettes, pour la retouche réaliste de la peau sur un portrait (suppression des imperfections).

2.5. Débruitage d'images par méthode « Patch-PCA »

G'MIC est aussi connu pour posséder de nombreux algorithmes variés de débruitage et de lissage d'images (plus d'une quinzaine à ce jour). Et bien, il en a maintenant un de plus ! Repair / Smooth [patch-pca] est un nouvel algorithme de débruitage d'image performant, basé patch qui a été ajouté à G'MIC. C'est un algorithme parallélisé, mais très coûteux en temps de calcul (probablement à éviter sur des machines à moins de 8 coeurs…). En contrepartie, il est capable de débruiter certaines images de façon parfois spectaculaire, en supprimant le bruit et préservant les détails de l'image, comme l'illustre la figure ci-dessous, avec une image contenant un niveau de bruit assez important. (En passant, merci à Jérome Boulanger pour ses conseils d'expert sur ce sujet).


Fig.2.5.1. Résultat du nouvel algorithme de débruitage d'image basé « patch » de G'MIC.

2.6. Effet « Droste » : la mise en abyme continue

L'effet Droste (aussi appelé mise en abyme) du nom de la marque de cacao ayant utilisé cet effet dans une de ses publicités, consiste à dessiner une partie de l'image dans elle-même, et ceci de manière récursive. Un filtre Deformations / Continuous droste a été récemment ajouté à G'MIC, mais n'a en réalité rien de très nouveau puisque c'est « juste » une réécriture complète du filtre Droste qui était déjà disponible dans le greffon Mathmap depuis quelques années. Mathmap était un greffon populaire pour GIMP, mais il ne semble plus évoluer, ni même maintenu, et l'effet Droste était l'un de ses filtres les plus complexes et les plus emblématiques. Martin « Souphead », un ancien utilisateur de Mathmap a donc pris le taureau par les cornes et s'est attelé à la conversion de ce filtre pour G'MIC. L'intérêt c'est qu'au passage, l'implémentation devient parallélisée. Pour celles et ceux intéressés par les aspects mathématiques de l'effet Droste, on ne peut que recommander la lecture de cette page didactique rédigée par un chercheur du CNRS, page qui contient des résultats amusants de création de séquences périodiques d'images utilisant cette effet.


Fig.2.6.1. Aperçu du nouveau filtre « Droste » pour la création d'une mise en abyme, dans le greffon G'MIC pour GIMP.

Avec ce filtre, tous les délires artistiques sont permis. Il est par exemple trivial de créer en quelques clics de souris le résultat présenté dans la figure ci-dessous : il suffit de détourer l'horloge, de rendre le fond transparent, et d'appliquer le filtre Droste de G'MIC, et voilà ! (à ne pas montrer aux gens stressés par le temps qui passe…).


Fig.2.6.2. Exemple de transformation d'image possible avec le filtre « Droste » de G'MIC.

2.7. Transformation équirectangulaire <-> zénith/nadir

Le filtre Deformations / Equirectangular to nadir-zenith est également un filtre initialement disponible dans Mathmap et qui a été transposé pour G'MIC. C'est un filtre utilisé dans le domaine assez restreint du traitement d'images de panoramas utilisant une projection cylindrique équidistante. Un tel panorama est en général obtenu comme la fusion de plusieurs photographies prises à des angles différents, la fusion étant effectuée de manière algorithmique (par exemple avec le logiciel libre Hugin). Lors de la fusion, il est très fréquent que des pans entiers d'images manquent dans le panorama généré, notamment au niveau des vues de dessus et de dessous (le zénith et le nadir, voir un exemple dans la figure ci-dessous).


Fig.2.7.1. Panorama obtenu par outil de fusion d'image. Certaines parties de l'image (zénith et nadir) sont manquantes.

Il est souhaitable de pouvoir resynthétiser l'information manquante dans ces zones. Mais comment faire ? La déformation induite par la projection cylindrique équidistante fait que la reconstruction directe est difficile dans ces zones (l'utilisation de l'outil de clonage n'est pas adapté par exemple). C'est là que le filtre de G'MIC intervient, en permettant de recréer des vues applaties du zénith et du nadir.


Fig.2.7.2. Récupération des vues applaties du zénith et du nadir de l'image précédente, grâce au filtre G'MIC du greffon pour GIMP.

Une fois ces vues calculées, il devient plus facile de boucher les trous, en utilisant par exemple un filtre de reconstruction de type Inpainting ou l'outil de clonage si on préfère faire ça manuellement.


Fig.2.7.3. Rebouchage des trous, par une technique quelconque (« inpainting » ou outil de « clonage » par exemple).

Il suffit ensuite d'invoquer ce même filtre, en inversant cette fois la transformation, et de réinsérer les zénith/nadir reconstruits dans l'image panorama originale, et le tour est joué. On obtient une belle image panorama complète (voir figure ci-dessous). Notez comme la déformation de l'image est importante dans ces zones, et comment il aurait été difficile de reboucher les trous en agissant directement sur l'image du panorama original.


Fig.2.7.4. Application de la transformation inverse, et insertion dans le panorama d'origine.

Les images présentées dans cette section ont été aimablement fournies par Morgan Hardwood. Morgan a d'ailleurs écrit un tutoriel détaillé sur cette technique de rebouchage d'images de panoramas, qui est consultable ici.

3. Autres améliorations et faits notables

Pour finir, voici en vrac quelques points marquants concernant le développement du projet G'MIC :

  • Le filtre Rendering / Kitaoka Spin Illusion est une autre conversion d'un filtre Mathmap réalisé par Martin « Souphead ». Il permet de générer un certain type d'illusions d'optiques comme le montre la figure ci-dessous (si vous êtes épileptiques, un conseil, fermez les yeux !)


Fig.3.1. Résultat du filtre « Kitaoka Spin Illusion ».

  • Le filtre Colors / Color blindness transforme une image en simulant différents types de daltonisme. Ce filtre peut être utile pour tester l'accessibilité de sites ou de documents graphiques aux daltoniens. Nous avons repris les transformations colorimétriques dont le lien apparaît sur le site Coblis, site qui propose également ce genre de simulation, en ligne. Les résultats obtenus avec le filtre G'MIC sont donc à priori strictement identiques, mais peuvent s'effectuer facilement sur des lots d'images par exemple.


Fig.3.2. Aperçu du filtre de simulation de différents types de daltonisme dans le greffon G'MIC pour GIMP.

  • Depuis quelques années maintenant, G'MIC intègre un évaluateur d'expressions mathématiques, très commode pour réaliser des calculs lors de l'application de filtres (nous en avions d'ailleurs déjà longuement parlé lors de la dépêche précédente). Cet évaluateur d'expression se dote de nouvelles fonctionnalités intéressantes, en particulier la possibilité de faire du calcul avec des variables de type complexe, vectoriel ou matriciel, mais aussi de créer ses propres fonctions mathématiques personnalisées. Par exemple, l'implémentation classique du rendu de l'ensemble de Mandelbrot, réalisé en estimant la convergence d'une suite complexe, peut s'écrire directement de la façon suivante en ligne de commande:
$ gmic 512,512,1,1,"c = 2.4*[x/w,y/h] - [1.8,1.2]; z = [0,0]; for (iter = 0, cabs(z)<=2 && ++iter<256, z = z**z + c); 6*iter" -map 7,2


Fig.3.3. Utilisation de l'évaluateur d'expression mathématiques de G'MIC pour calculer un rendu de l'ensemble de Mandelbrot.

Les possibilités de calcul en sont grandement développée, puisque l'on n'est plus limité à l'utilisation de variables scalaires, mais qu'on peut définir des filtres qui, pour chaque pixel d'une image d'entrée, vont pouvoir effectuer rapidement des résolutions de systèmes linéaires ou encore des décompositions en valeurs propres/vecteurs propres. C'est un peu comme si on disposait d'un mini-(mini)-Octave à l'intérieur de G'MIC. Le filtre Brushify décrit plus haut utilise d'ailleurs de manière intensive ces nouvelles possibilités. À noter que cet évaluateur d'expression possède son propre JIT pour accélérer le calcul d'une expression lorsqu'elle est réalisée sur plusieurs milliers de valeurs simultanément.

  • Une autre contribution technique importante a été apportée par Tobias Fleischer, avec la création d'une API C pour appeler les fonctions de la bibliothèque libgmic (bibliothèque des fonctionnalités de G'MIC possédant initialement une API C++). Comme l'ABI C est standardisée (contrairement à celle du C++), G'MIC peut donc plus facilement s'interfaçer avec d'autres langages que le C++. On peut par exemple imaginer dans le futur la création d'APIs G'MIC pour des langages, comme Python. En passant : si quelqu'un est motivé pour réaliser ce genre de choses, qu'il n'hésite surtout pas à nous contacter ! Tobias utilise actuellement cette nouvelle API C pour développer des greffons basés sur G'MIC respectant l'API OpenFX. Ces greffons devraient donc être utilisables indifféremment dans des logiciels d'édition vidéo comme After effects, Sony Vegas Pro ou encore Natron (voir figure ci-dessous). C'est un travail qui est toujours en cours.


Fig.3.3. Aperçu des greffons OpenFX basés sur G'MIC, tournant sous Natron.


Fig.3.4. Aperçu du script d'interfaçage G'MIC fonctionnant dans le VSE de Blender.

  • Certaines fonctionnalités de G'MIC ont également fait leur apparition dans le logiciel de montage vidéo non-linéaire Flowblade, grâce au travail acharné de Janne Liljeblad son programmeur principal (voir figure ci-dessous). Là encore, le but est de permettre d'appliquer des effets G'MIC sur des séquences d'images dans un but essentiellement artistique, comme le montre cette vidéo, ou encore celle-ci.


Fig.3.5. Aperçu d'un filtre G'MIC tournant sous Flowblade, éditeur non-linéaire de vidéos.

  • Notons également que de plus en plus de ressources extérieures faisant mention de G'MIC font leur apparition sur la toile : des tutoriaux et des articles de blog (ici, ici, ici…), ou encore des vidéos de démonstrations (ici, ici, ici, ici…). C'est très positif pour la visibilité du projet, et en même temps cela fait vraiment plaisir à voir. Merci donc à tout ces gens qui prennent le temps d'en parler de manière bénévole et désintéressée !
4. Comment tout cela va évoluer ?

Quelques petites observations :

  • Comme vous pouvez le constater, le développement du projet G'MIC se poursuit à un rythme soutenu. Ses fonctionnalités semblent intéresser de plus en plus d'utilisateurs (ce que confirme les statistiques de visites/téléchargements du site web), mais aussi de plus en plus de développeurs : aujourd'hui, on retrouve des intégrations ou des greffons (plus ou moins aboutis) basés sur G'MIC dans des logiciels libres aussi divers que GIMP, Krita, Blender, Photoflow, Flowblade, Veejay, EKD et dans un futur proche (du moins on l'espère) Natron.
  • L'un ne va probablement pas sans l'autre : le fait d'avoir des utilisateurs nous encourage à ajouter de nouvelles fonctionnalités régulièrement, ce qui attire aussi de nouveaux utilisateurs. Tant que ça fonctionne de cette façon, on essayera de continuer ! Car notons tout de même que tout ceci demande pas mal de temps (pour ma part, entre 10 et 15 heures par semaine en dehors de mes heures officielles de travail).
  • Tout ça pour redire un grand merci aux utilisateurs et aux contributeurs (toujours plus nombreux), aux curieux et à ceux qui font de la publicité au projet directement ou indirectement. Ça aide énormément !

En réalité, on ne sait pas encore comment le projet G'MIC va évoluer dans le futur, mais il y a déjà tellement de choses à faire dans le présent qu'on se concentre dessus pour le moment. On vous donne peut-être rendez vous dans quelques mois pour la suite des aventures de G'MIC. On vous invite également à rejoindre la communauté présente sur notre forum officiel sur pixls.us pour obtenir plus de renseignements et répondre à vos questions sur le projet. Et surtout, en attendant, n'hésitez pas à vous mettre au traitement d'images libre !

Télécharger ce contenu au format Epub

Lire les commentaires

LibraZiK 1.2 : Premier pas (20160429)

4 mai, 2016 - 14:38

LibraZiK est un projet qui a pour objectif de fournir un système robuste, prêt à l'emploi, et avec une documentation à jour, aux francophones souhaitant faire de la Musique Assistée par Ordinateur (M.A.O.).

LibraZiK est un studio audio-numérique complet fabriqué à partir de logiciels libres pour les ouvrages musicaux.

Après 3 mois de boulot, j'ai le plaisir de vous annoncer la disponibilité de LibraZiK 1.2 !

Au menu principal : tout LibraZiK a été reconstruit pour fournir une version 64 bits (version 32 bits toujours disponible également).

Regardons tout cela d'un peu plus près.

Sommaire

Alors, quoi de nouveau depuis le dernier billet concernant la version précédente ?

Une nouvelle image amorçable (DVD ou USB)

Avec, entre autres :

  • l'apparition d'une version 64 bits (la version 32 bits est également disponible),
  • une reconstruction de tous les paquets-logiciels de LibraZiK en version 64 bits et 32 bits,
  • une possibilité d'installation de l'image amorçable avec une connexion wifi,
  • de nouvelles documentations et mise à jour de documentations déjà existantes,
  • et pas mal de nouveautés logicielles que nous allons voir ci-dessous.
Côté logiciel : Nouveaux logiciels de musique
  • monobristol : un émulateur de synthétiseurs analogiques et autres orgues mythiques (genre les Rhodes, certains Korg et autres) ! À noter que LibraZiK lui fournit une traduction en français de son interface graphique,
  • patchage: pour faire des connexions entre vos logiciels plus intuitivement qu'avec QjackCtl,
  • lv2vocoder: un greffon "vocodeur" au format LV2,
  • ensemble de greffons cmt: une suite de greffons au format LADSPA,
  • autotalent: un greffon au format LADSPA qui permet de corriger les fausses notes chantées. Il peut bien évidemment être détourné de cette utilisation pour en faire des tas d'autres trucs ! C'est à vous de nous dire comment vous l'utilisez ! À noter que LibraZiK lui fournit une traduction en français de son interface graphique,
  • drumkv1, samplv1et synthv1: en greffons LV2 et en logiciels autonome, une trilogie comprenant un synthétiseur virtuel, un échantillonneur et une boîte à rythme,
  • giada, un boucleur audio et/ou MIDI,
  • mverb, un effet de traitement du son et, plus précisément, une belle petite réverbération, disponible en logiciel autonome ainsi qu'en greffon LV2, DSSI, LADSPA et VST grâce au travail de portage sous Linux de Filipe Coelho. LibraZiK commence à être sérieusement bien équipée du côté des réverbérations.
  • qjackrcd, un petit enregistreur tout simple bien pratique !
Mise à jour de logiciels de musique
  • nouvelle version de jalv.select apportant : une icône dans la zone de notification de la barre des tâches (systray), un tri alphabétique des greffons, des raccourcis-clavier pour plusieurs actions, une possibilité de le démarrer minimisé dans la barre des tâches, une possibilité de sélection des greffons et de leurs pré-réglages par le clavier,
    • playitslowly pour la correction d'un bogue : si vous paramétriez le départ de lecture à autre chose que 0 puis pressiez le bouton de rembobinage, alors la tête de lecture retournait à 0 avant de sauter jusqu'à la position de départ sélectionnée. Ceci pouvait occasionner un genre de ''crrrrounnnch'' du son dans certaines conditions. Maintenant, la tête de lecture va directement à la position de départ sans passer par le 0.
    • ardour4 passe en version 4.6 avec pas mal de nouveautés, voir ici (en anglais),
    • Grosse nouveauté ! nouvelle version 2.5.3 de ZynAddSubFX qui apporte notamment la possibilité d'utiliser certains de ces effets en externe grâce aux versions LV2 ou VST de ces effets, ce qui veut dire que vous allez pouvoir les utiliser partout encore plus facilement. À noter également que cette version voit le retour du greffon DSSI ! Création des pages de documentation pour ces greffons : zynalienwah, zynchorus, zyndistortion, zyndynamicfilter, zynecho, zynphaser, zynreverb.
Logiciels divers
  • ajout de vrms, petit utilitaire pour traquer les paquets non-libres sur votre système,
  • ajout de l'extension adblockplus pour iceweasel permettant de faire disparaître des publicités,
  • ajout de tout un tas d'outils bas-niveau pour le partitionnement des périphériques, et pour la reconnaissance et la manipulation de certains systèmes de fichiers,
  • nouveaux noyaux 4.4.6 en version "normaux", "basse-latence" et "temps-réel", pour système 64 bits et 32 bits (normal et PAE). Voir la page explicative concernant les noyaux,
  • nouvelle version de gparted pour ajouter la francisation de l'élément de menu,
  • ajout d'une optimisation permettant la prévisualisation des fichiers XCF (format natif des images du logiciel de dessin et/ou retouche photo "GIMP") . Ceci permet de voir des vignettes miniatures des fichiers *.xcf (de GIMP) sur votre bureau ou dans votre navigateur de fichiers Caja.
Côté documentation : Mise à jour Nouveaux tutoriels Autres
  • Mise en place d'un outil de suivi des bugs (et adaptation au thème graphique général du site) pour pouvoir remonter et garder une trace des améliorations possibles.
  • Mise à jour des greffons de dokuwiki (le logiciel qui sous-tend la documentation)
  • Création d'une fiche pour LibraZiK sur audiofanzine(merci sub26nico !)
Pour les testeurs
  • audacity 2.1.2 ,
  • drumgizmo 0.9.9 et dgedit (son éditeur de kit de batterie) 0~git20151217 ,
  • reZound et la traduction entière de son interface graphique. Documentation : reZound - tour d'horizon,
  • aseqjoy,
  • ardour4 passe en version 4.7 + support expérimental de l'importation de session ProTools,
  • une version du client de messagerie instantanée internet Pidginavec un ajout du support JACK (merci Janus1 du canal IRC),
  • hydrogen 0.9.7 pré-version de test.
Installer Librazik

Si vous êtes nouveau et que vous n'avez pas encore installé LibraZiK, ou bien, si vous voulez vous refaire un Live à jour, veuillez consulter cette documentation qui vous permettra de l'essayer sans l'installer. Vous pourrez, bien entendu, ensuite installer LibraZiK si vous le souhaitez.

Mettre à jour

À noter que si vous aviez un système 32 bits sur un ordinateur 64 bits et que voulez y mettre un système 64 bits, alors une réinstallation complète est le meilleur conseil qui puisse vous être donné.

Si vous aviez une version 32 bits et que vous restez sur une version 32 bits, alors vous n'avez pas besoin de réinstaller votre système. Il vous suffit de le mettre à jour régulièrement. Cette nouvelle version du Live permet simplement d'intégrer les nouveautés récentes de LibraZiK dans le Live.

Bonne ZiK !

Olivier

Télécharger ce contenu au format Epub

Lire les commentaires

Ancestris est disponible pour Haiku

4 mai, 2016 - 09:42

Conséquence directe de contacts lors des JDLL 2016 la distribution Haiku a intégré dans ses paquets le logiciel de généalogie Ancestris depuis le vendredi 22 avril 2016.

Ancestris est gratuit et libre (GPL v2), et il respecte la spécification GEDCOM version 5.52. Il est disponible pour Linux, BSD, Solaris, MAC et Windows. Il est écrit en langage Java et repose sur la plate-forme NetBeans d'Oracle.

Après Arch qui a été la première distribution Linux à mettre Ancestris dans ses dépôts, Haiku met officiellement Ancestris à disposition et ce en un seul et unique contact alors que pour les autres distributions cela traîne encore.

C'est un responsable de paquets d'applications Java qui a fait un paquet binaire, c'est disponible. Dans Haiku il est accessible sur le dépôt "clasqm".

Attention, la dernière alpha disponible n'a pas encore la gestion des paquets, il faut prendre une nightly build en attendant la bêta.

Merci de la part de l'équipe de développement/communication/diffusion d'Ancestris

Capture d'écran d'Ancestris 0.8 (cliquez dessus pour agrandir) :

Télécharger ce contenu au format Epub

Lire les commentaires