Syndiquer le contenu
Mis à jour : il y a 12 heures 17 min

Grammalecte, correcteur grammatical

22 avril, 2015 - 01:16

Grammalecte est un correcteur grammatical récent (né en janvier 2011), écrit en Python, dédié à la langue française, et, pour l’instant, uniquement disponible pour LibreOffice et OpenOffice. Une campagne de financement participatif est lancée pour porter Grammalecte sur Firefox et Thunderbird et en faire par ailleurs un serveur indépendant (voir plus bas). Cette dépêche peut donc intéresser tous ceux qui s’intéressent à la grammaire.

Sommaire

Grammalecte est un dérivé de Lightproof, un correcteur écrit initialement pour le hongrois. Le logiciel s’est peu à peu éloigné de Lightproof avec les années. Même si Lightproof a été conçu pour gérer diverses langues, j’ai eu besoin de modifier nombre de choses dans le moteur interne pour le rendre efficace pour le français. Sans cela, pas grand-chose n’aurait été possible.

Ce correcteur est né un peu par hasard. En 2010, j’avais décidé de m’occuper de la partie française de LanguageTool, avec réticence, car je n’aime ni le Java et ni le XML dans lequel sont écrites les règles de grammaire. Par ailleurs, je voulais contrôler le processus de création des règles de contrôle. Or, à l’époque, LanguageTool possédait de nombreuses règles que je n’aimais pas, qui généraient beaucoup de faux positifs, mais il eût été indélicat d’envoyer à la benne tout ce qui me déplaisait. Enfin, comme je ne pouvais pas non plus ajuster certaines règles typographiques comme je l’aurais voulu (le développement étant centralisé, il fallait convaincre), j’ai finalement laissé tomber et je me suis penché sur Lightproof, qui avait l’avantage de fournir un kit minimal à partir duquel je pouvais faire comme je l’entendais. Je voulais me concentrer sur l’essentiel, éviter autant que possible les faux positifs, et être assez strict sur les questions typographiques. J’ai d’abord travaillé pour moi, surtout par curiosité, afin de voir ce qui était possible.

Après pas mal de déboires divers, la première version alpha paraît en janvier 2011 et connaît un petit succès d’estime. Du coup, bien que je n’avais pas vraiment l’intention de me consacrer à ça, j’ai mis le doigt dans l’engrenage.

Principes de fonctionnement

D’une manière générale, Grammalecte est un correcteur utilisant les motifs de correspondance (“pattern matching”) pour détecter les erreurs. Il examine le texte qu’on lui passe en se basant sur une liste de règles de contrôle, qu’il faut bien sûr écrire à l’avance parce que le correcteur ne peut pas deviner ce qui est une erreur, il ne fait pas de suppositions. Pour savoir à quoi correspondent les mots, il se base sur un lexique qui lui indique leur nature grammaticale. Les règles de contrôle sont décrites par un motif de détection d’erreur, des conditions d’applications, un message informatif et si possible des suggestions. (Détecter une erreur et suggérer une correction sont deux choses plus distinctes qu’il n’y paraît. Suggérer peut s’avérer plus difficile que détecter une erreur, je reviendrai sur ce point plus tard.)

Un motif de détection est une expression régulière plus ou moins complexe. Une fois un motif détecté, il est en général nécessaire de faire une analyse plus poussée des éléments, notamment en examinant la nature grammaticale des mots du motif repéré, ce qui se fait par d’autres expressions régulières. Bref, on lance des expressions rationnelles tous azimuts, tout le temps. Les conditions d’application et l’analyse des motifs trouvés se font avec du code ad hoc en Python, simple ou complexe, c’est selon.

La difficulté de fonctionner avec des motifs de correspondance, c’est que les règles à écrire sont innombrables, tant l’écriture d’une langue humaine recèle de possibilités, tant le nombre d’erreurs possibles est grand. Par ailleurs, les faux positifs (ou fausses alertes) sont très difficiles à éviter. Car, s’il est facile d’écrire une règle pour détecter une erreur dans un contexte donné, il est difficile d’écrire une règle valable pour tous les cas de figure possibles.

L’atout de Grammalecte pour faire face à l’explosion combinatoire des possibilités, c’est son préprocesseur de texte.

Le préprocesseur de texte est un outil qui transforme en interne le texte à corriger. Il le modifie pour simplifier le travail des règles de contrôle. Pour ce faire, il dispose de règles de transformation qui sont décrites par un motif de détection, des conditions d’application et une chaîne ou une fonction de remplacement.

Néanmoins, toutes les transformations ne peuvent être mises en œuvre en une seule fois. C’est pourquoi le correcteur va effectuer plusieurs passes sur le texte. Chaque passe s’effectue en deux temps : d’abord l’application des transformations du préprocesseur de texte, puis les règles de contrôle. Ceci permet de simplifier le texte au fur et mesure des analyses et de supprimer les éléments qui ont été vérifiés ou qui n’ont pas besoin de l’être, puis de se concentrer lors de la passe suivante sur d’autres points.

Le correcteur effectue à l'heure actuelle six passes sur le texte. (Théoriquement, il peut en faire un nombre infini, il suffit de spécifier dans le fichier des règles qu’on veut une nouvelle passe et d’écrire de nouvelles instructions.)

  • La première passe contrôle les paragraphes entiers et sert notamment à vérifier tous les aspects typographiques, les espaces insécables, les guillemets, les espaces surnuméraires.
  • Après cette première passe, le paragraphe est scindé en phrases.
  • La seconde et la troisième passe servent à contrôler notamment les accords entre les noms et les adjectifs, les pluriels, le genre, etc.
  • Les trois passes suivantes vérifient principalement les accords des verbes avec leur sujet, les participes passés, les formes interrogatives ou impératives.

Il n’est pas du tout exclu d’ajouter de nouvelles passes.

Historique des fonctionnalités

Grammalecte n’a pas toujours fonctionné ainsi. Dans la version 0.1, comme Lightproof, il faisait tout le travail en une seule passe, paragraphe par paragraphe. Il m’est vite apparu qu’il serait pratique d’effectuer le contrôle en deux temps, paragraphe par paragraphe, puis phrase par phrase. Et il m’a semblé judicieux de simplifier le texte entre les deux passes. Ainsi naquit la version 0.2, qui prenait déjà pas mal de distance avec Lightproof. Le préprocesseur de texte, qui n’était au commencement qu’une commodité, m’est apparu peu à peu comme un élément essentiel, un outil susceptible de résoudre des problèmes quasi insurmontables sans lui. C’est pourquoi, à partir de la version 0.3, le préprocesseur est devenu la baguette magique avec laquelle une quantité gigantesque de difficultés ont été résolues. À ce stade, le correcteur effectuait déjà cinq passes, et il a fallu plus tard en rajouter une sixième.

Avec la version 0.3 sont apparus les outils annexes : le lexicographe, le formateur de texte, puis le conjugueur.

Le lexicographe et le conjugueur sont deux outils dont le rôle est pédagogique : informer et aider l’utilisateur en cas de doute. Le lexicographe, avec un clic droit, donne de la nature grammaticale de n’importe quel mot. Le conjugueur permet de connaître, là encore en quelques clics, la conjugaison de n’importe quel verbe. Par exemple, un clic droit sur le mot “suis” vous permet d’accéder immédiatement à la conjugaison d’être et de suivre, ce qui évite la peine d’avoir à chercher sur le Net ou dans son dictionnaire. Comme un correcteur grammatical ne saurait corriger toutes erreurs possibles, il m’a toujours paru utile de fournir une aide pédagogique à l’utilisateur, car lui seul peut vraiment décider.


Le formateur de texte est un outil de correction typographique automatisé, qui propose de corriger la plupart des erreurs en un seul clic, même s’il en y a des milliers. Il propose aussi quelques fonctions de nettoyage et de restructuration d’un texte. Cet outil, que je jugeais anecdotique au commencement, est celui qui a suscité le plus d’engouement et que les utilisateurs ont le plus sollicité. Les outils qui bossent tout seul, ça semble beaucoup plaire. ;)

La version 0.4 apporte beaucoup d’améliorations internes, mais surtout des mécanismes de suggestion qui permettent enfin d’offrir dans la plupart des cas autre chose qu’un simple message d’erreur (parfois mystérieux pour ceux qui ne savent plus ce qu’est un COD ou un participe passé).

Comparaison avec LanguageTool

LanguageTool, comme Grammalecte, fonctionne avec des motifs de correspondance (“pattern matching”) chargés de déceler les erreurs. Et les similitudes s’arrêtent là. Dans le détail technique, tout est différent, et ces différences font que le potentiel qu’on peut tirer de ces deux logiciels n’est pas le même.

LanguageTool est très formaliste, il faut écrire des règles en XML. C’est descriptif, rigide et assez contraignant, mais il n’est pas difficile de rentrer dans le code des règles. Tout est assez intelligible, même si c’est verbeux.

Grammalecte, en revanche, est beaucoup moins formaliste, c’est plutôt un vaste chantier en cours de construction, avec pas mal de bizarreries, mais c’est plutôt souple, et on peut se permettre bien plus de fantaisies. En revanche, concernant la lisibilité des règles, disons que ce n’est pas son point fort, car les règles appellent directement du code en Python et il faut toujours garder à l’esprit qu’on analyse un texte qui va être modifié par le préprocesseur de texte. De plus, il faut se plonger dans le code du moteur pour comprendre ce que font certaines fonctions. Par ailleurs, l’ordonnancement des règles est primordial. Si vous déplacez quelque chose sans comprendre comment ça fonctionne et les principes généraux, il est fort probable que vous cassiez quelque chose. Même quand on connaît bien l’ensemble, c’est assez difficile, attendu que les effets de bord ne sont pas toujours évidents à estimer.

LanguageTool ne possède pas de préprocesseur de texte, il lui faut plus de règles de détection que Grammalecte pour faire des choses similaires. Il en faut tellement plus qu’il est peu probable qu’en l’état actuel, LanguageTool puisse faire bien des choses que fait Grammalecte aujourd’hui relativement aisément, car il faudrait écrire énormément de règles.

Mais LanguageTool dispose d’un outil que Grammalecte ne possède pas : un désambiguïsateur. LanguageTool n’effectue qu’une seule passe sur le texte, phrase par phrase. En premier lieu, il découpe les phrases en “tokens” (mots, ponctuations, guillemets, etc.). Puis, grâce à son désambiguïsateur, il fait de la désambiguïsation sur les “tokens” ambigus, c’est-à-dire qu’il détermine la nature grammaticale d’un mot quand il en a plusieurs (par exemple : “est” peut être un nom masculin, une conjugaison du verbe être, un élément d’une locution adverbiale “id est”). En somme, grâce à cet outil, LanguageTool pose des étiquettes explicatives sur les tokens. Puis, il analyse la succession des tokens selon les règles écrites. Il renvoie les erreurs et c’est fini. Ce qu’il faut retenir, c’est que la désambiguïsation permet d’avoir plus de certitudes dans l’analyse du texte.

De son côté, Grammalecte ne découpe pas les phrases en tokens. Dans Grammalecte, il n’y a pas de tokens ni même de mots à proprement parler, il n’y a que des zones de texte définies par des expressions régulières qui servent de déclencheurs pour une analyse spécifique des passages correspondant aux motifs trouvés. On ne travaille pas sur des éléments déterminés à l’avance, mais sur des zones, souvent des mots bien sûr, mais aussi des bouts de phrases ou des motifs de caractères sans nécessairement se soucier des délimitations des mots et de leur position dans le texte (même si on s’en soucie assez souvent comme vous pouvez l’imaginer). Je peux par exemple chercher un motif “ni… ni…” sans me soucier du nombre de “tokens” qu’il pourrait y avoir entre les deux “ni”, sans me soucier où c’est précisément. C’est souple, mais cette souplesse se paye par une plus grande complexité et c’est régulièrement l’occasion de faire des nœuds mentaux pour comprendre ce qui se passe, surtout pour gérer toutes les questions d’apostrophes, de majuscules, de traits d’union, de délimitations des mots (plus problématique que ce que vous pouvez supposer) et divers détails subtils qui n’ont l’air de rien, mais qui compliquent souvent la tâche de manière imprévue. Certains problèmes, on ne les auraient pas, ou seulement à moindre degré, avec des phrases découpées de manière prédictible et uniforme en “tokens”. Cela dit, la tokenisation ne semble pas la solution miracle non plus, si j’en crois ce que j’ai lu parfois sur la liste de discussion de LanguageTool, car il ne semble pas évident de gérer la question des apostrophes et des traits d’union.
Par ailleurs, dans Grammalecte, comme à chaque passe le texte est transformé, un même motif de correspondance ne renverra pas forcément la même chose selon la passe dans lequel il est lancé. Il faut toujours garder à l’esprit où on est dans le flux des règles de transformation et estimer ce qui se passe globalement.
Et, comme il n’y a pas de “tokens” dans Grammalecte, il n’y a pas non plus de désambiguïsateur qui pose des étiquettes sur les mots. Le correcteur fait quand même de la désambiguïsation, mais à la volée, c’est-à-dire que chaque règle se charge elle-même de s’y retrouver parmi les ambiguïtés du texte. C’est un désavantage par rapport à LanguageTool. Ce dernier permet d’écrire des règles dans un environnement plus “sûr” que dans Grammalecte où règnent l’incertitude et le flou. Cela dit, le préprocesseur de texte, encore lui, va nous épargner bien des peines et solutionner nombre de cas difficiles, en faisant faire de la “désambiguïsation” à sa manière, c’est-à-dire en supprimant tout simplement des zones de texte.
Les règles de transformation du préprocesseur de texte consistent pour la très grande majorité à faire du nettoyage, c’est-à-dire à effacer le superflu, ce qui, de fait, nous évite de faire un gros travail d’analyse. Certaines règles de transformation introduisent aussi dans le texte des caractères signalétiques que certaines règles de contrôle savent reconnaître. Et quelques règles servent réellement à modifier ce qui est écrit, là encore pour simplifier. Cette manière de faire apporte beaucoup d’avantages par rapport à LanguageTool, mais dans certains cas s’avère moins efficace que l’étiquetage. Le problème de Grammalecte, c’est une certaine forme d’amnésie, le préprocesseur nettoie et fait parfois du signalement, mais après ça chaque règle se débrouille seule.

Hormis les différences techniques inhérentes aux logiciels, la manière d’écrire les règles peut aussi faire varier grandement leurs capacités de détection. On peut écrire les règles de manière stricte (moins de détection d’erreurs, moins de faux positifs) ou audacieuse (plus de détection, plus de faux positifs). LanguageTool possède des règles de contrôle que je n’ai pas implémentées dans Grammalecte parce que je les trouve trop susceptibles de générer des faux positifs en l’état actuel des choses. Il y a des vérifications que Grammalecte fait que son rival n’essaie pas de faire (trop risqué ou compliqué pour lui). Ensuite, il y a les règles qu’un correcteur peut juger superflues. Par exemple, LanguageTool vérifie si vous écrivez correctement Britney Spears, Warren Buffett et des tas d’autres célébrités, ce que Grammalecte ne prend pas la peine de contrôler.

Le préprocesseur de texte par l’exemple

Mettons que nous tapons dans Writer :

Cette pièces de théâtre-là (http://www.site.fr/blabla) d’Albert Camus² sur «l’absurde» étaient, comme d’habitude, passionnants.

Trois erreurs grammaticales, deux typographiques.

Sachez d’abord que le texte que le correcteur reçoit ne correspond pas toujours au texte que voit l’utilisateur. En effet, les marques de formatage sont effacées. Si vous tapez des passages en italique ou gras, l’italique et le gras vont disparaître. Dans notre exemple, il y a le caractère “²”. Il peut être obtenu en tapant le caractère “²” ou tapant le caractère “2” et en le mettant en exposant. Dans le second cas, la mise en exposant est une marque de formatage. C’est probablement ainsi que l’utilisateur a obtenu ce caractère. Dans ce cas, le correcteur reçoit :

Cette pièces de théâtre-là (http://www.site.fr/blabla) d’Albert Camus2 sur «l’absurde» étaient, comme d’habitude, passionnants.

Autrement dit, même si l’utilisateur voit le caractère “²”, le correcteur reçoit le caractère “2”.

Passe 1. Pour commencer, le préprocesseur de texte va supprimer les URL (entre autres choses).

Cette pièces de théâtre-là (@@@@@@@@@@@@@@@@@@@@@@@@@) d’Albert Camus2 sur «l’absurde» étaient, comme d’habitude, passionnants.

Ensuite, les règles de contrôle vont vérifier les espacements, la ponctuation, les guillemets, etc. C’est lors de la première passe que le correcteur signalera qu’il faut des espaces insécables autour de “l’absurde”.

Passe 2. Les arobases sont supprimées. La note de référence “2” qui suit Camus est supprimée, ainsi que les guillemets. On obtient alors :

Cette pièces de théâtre-là (_________________________) d’Albert Camus_ sur _l’absurde_ étaient, comme d’habitude, passionnants.

Passe 3. C’est dans cette passe qu’on nettoie le plus. On supprime le “-là” qui suit “théâtre”. Le patronyme “Camus” est supprimé. Puis “d’Albert” est supprimé, ainsi que “comme d’habitude”. Puis “pièces de théâtre” est simplifié et réduit à un seul mot : “pièces”. Comme il n’y a plus que du vide entre les parenthèses et les virgules, on les supprime aussi. Ce qui donne :

Cette pièces _________________________________________________________ sur _l’absurde_ étaient __________________ passionnants.

Lors de cette passe, la première erreur d’accord sur “pièces” est repérée.

Passe 4, 5 et 6. Après la 3 ème passe, on considère que les accords dans les groupes nominaux ont été vérifiés. Donc on simplifie les groupes nominaux afin de pouvoir vérifier l’accord avec les verbes. Ce qu’on fera dans les 3 passes suivantes. Ici, “sur l’absurde” est supprimé puisqu’il ne peut être un sujet. Il reste :

Cette pièces _________________________________________________________________________ étaient __________________ passionnants.

À présent, il n’y plus rien à simplifier. Après la correction de “pièce”, le correcteur verra l’erreur sur “étaient” et après la correction de ce dernier, il pourra faire les bonnes suggestions sur “passionnants”.

Ce système n’est pas parfait. Voici un autre exemple.

Les petits étais endormis.

Ici, le correcteur ne détecte rien, car “étais” est aussi un nom masculin pluriel.

D’autres erreurs que le correcteur peut trouver grâce au préprocesseur de texte :

L’homme sur le bateau de Patrick viens de temps en temps mangé chez moi.
Ces marchands passe leur temps à se quereller.
Ils jugeront en toute impartialité de ce cas délirante.
Ils sont de manière si étonnante et si admirable arrivé à ce résultat…
Les tests grand public de Jean-Paul montre des résultats surprenants.
Ils ont à plusieurs reprises perdus leur sang-froid.
Ces attaques à main armée donne la chair de poule.
Réfléchir à tête reposée prends du temps.
Des chambres plus ou moins fortement éclairé.
Ce qui, la plupart du temps, donnes des maux de tête.
La N.S.A. espionneras toujours tout le monde.

Avec le dernier exemple, vous verrez l’une des choses que le préprocesseur réécrit pour faciliter le travail du correcteur. En interne, la graphie “N.S.A.” a été transformée en “NSA” (le message d’erreur trahit cette modification).

Le préprocesseur fait aussi de la simplification de certains syntagmes nominaux. Exemples :

armé jusqu’aux dents --> armé
fille au pair ---------> fille
médecin de garde ------> médecin

Le préprocesseur peut faire énormément de choses, mais il ne peut en l’état actuel résoudre tous les problèmes, car il doit lui-même demeurer prudent quand il fait face à des ambiguïtés. Dans bien des cas, il arrivera à simplifier les groupes nominaux. Dans d’autres cas, il n’y arrivera pas. Il y a encore beaucoup de progrès à faire sur ce chapitre. Concevoir un désambiguïsateur aiderait beaucoup. Un préprocesseur de texte associé à un désambiguïsateur, ce serait une combinaison utile pour accroître notablement la détection des erreurs.

Le dictionnaire

La graphie d’un mot français ne permet pas de déterminer sa nature. Un mot finissant par -ent peut être un nom, un adjectif, un adverbe ou la forme conjuguée d’un verbe. C’est pourquoi un correcteur grammatical ne peut souvent pas grand-chose sans un lexique étiqueté référençant tous les mots d’une langue. Cet étiquetage, c’est la base de la connaissance du correcteur. Le dictionnaire français pour Hunspell, le correcteur orthographique, est actuellement la source directe de Grammalecte.

Quelques données sur le dictionnaire :

  • plus de 77000 entrées,
  • toutes les entrées sont grammaticalement étiquetées,
  • environ 12 % d’entre elles sont sémantiquement étiquetées (médecine, informatique, botanique, etc.), mais cet étiquetage ne sert pas encore. Améliorer la base lexicale et son étiquetage, c’est l’une des tâches les plus importantes de la conception d’un correcteur grammatical.

Ce dictionnaire, vous l’avez probablement tous utilisé, puisqu’il est inclus dans Firefox, Thunderbird, LibreOffice, Chrome, Opera et une multitude de logiciels dont je serais bien en peine de faire la liste si on me la demandait. Cela dit, vous en utilisez peut-être une vieille version, je ne l’intègre qu’à LibreOffice et ne fournit des extensions que pour OpenOffice, Firefox et Thunderbird. L’intégration dans les autres logiciels est faite par d’autres personnes à des rythmes très divers.

Tout le travail sur le dictionnaire se fait sur Dicollecte, où sont collectées les propositions des utilisateurs.

Pourquoi la correction grammaticale est difficile

Commençons par un exemple :

Il est conseiller à la mairie. [Correct]
Il est aller à la mairie. [Incorrect]

Pourtant, l’étiquetage grammatical de ces phrases est strictement identique. Les mots “conseiller” et “aller” sont tous les deux à la fois un verbe à l’infinitif et un nom masculin. Or, un correcteur grammatical ne comprend absolument rien à ce que vous écrivez, même si vous ne faites aucune erreur. Il ne peut se baser que sur une suite d’étiquettes grammaticales.

Il est parfois irritant de s’entendre dire : “il y a une erreur ici, c’est évident”. Car, en fait, il y a rarement quoi que ce soit d’évident pour un correcteur grammatical. Le mot “évident” n’est lui-même pas seulement un adjectif, c’est aussi la conjugaison du verbe “évider” à la 3e personne du pluriel au présent. D’une manière générale, il semble souvent facile d’écrire une règle qui détecte les erreurs dans une phrase ou un contexte spécifique. En revanche, il est souvent difficile, voire impossible, d’écrire une règle qui détecte les erreurs dans tous les contextes sans générer nombre de faux positifs. Du coup, l’écriture des règles, c’est très souvent un compromis entre ce qu’on voudrait détecter et la tolérance pour les fausses alertes (la mienne est assez basse).

Autres exemples :

Des caractéristiques matériels [Incorrect]
Des matériels caractéristiques [Correct]
Des nouvelles caractéristiques [Correct]
Des matérielles caractéristiques [Incorrect]

Vous, humains, savez que “caractéristiques” est dans le premier cas un nom féminin. Mais c’est aussi un adjectif épicène. Le correcteur grammatical ne sait pas décider si ce doit être un nom ou un adjectif. Pour lui, “matériel”, “caractéristique” et “nouvelle” sont dans tous les cas nom et adjectif.

Autrement dit, l’étiquetage grammatical ne suffit pas. Seul le sens permet aux humains de trouver les erreurs. Mais, comme je l’ai dit, le correcteur ne comprend rien du tout. Il faudrait prendre le temps d’étiqueter les entrées avec des informations plus spécifiques, susceptibles de nous aider à contextualiser ce qu’on corrige. Une tâche titanesque. Nous en sommes encore loin.

Et ce ne sont là que des exemples très simples, très loin des phrases complexes qu’on peut écrire.

Parmi les difficultés du français, l’une des principales, c’est qu’il y a énormément de mots dont la nature grammaticale dépend du contexte :

tu ________ pronom personnel sujet épicène singulier // participe passé du verbe taire
lui _______ pronom personnel sujet masculin // pronom personnel objet masculin et féminin // participe passé du verbe luire
sommes ____ forme conjuguée de être // forme conjuguée de sommer // nom féminin ou masculin pluriel
ton _______ déterminant // nom masculin
son _______ déterminant // nom masculin
la ________ déterminant // nom masculin // pronom personnel objet
avoir _____ nom masculin // verbe auxiliaire
été _______ participe passé du verbe être // nom masculin
est _______ forme conjuguée de être // nom masculin // élément d’une locution latine (id est)
a _________ forme conjuguée de avoir // nom masculin invariable
avions ____ forme conjuguée de avoir // nom masculin pluriel
pas _______ adverbe de négation // nom masculin
une _______ déterminant // nom féminin (la une des journaux)
aura ______ forme conjuguée de avoir // nom féminin
as ________ forme conjuguée de avoir // nom masculin
contre ____ préposition // nom masculin singulier // forme conjuguée de contrer
vers ______ préposition // nom masculin singulier ou pluriel
mais ______ conjonction de coordination // adverbe // nom masculin pluriel
si ________ conjonction de subordination // adverbe // nom masculin
évident ___ adjectif masculin // forme conjuguée de évider
dément ____ adjectif masculin // forme conjuguée de démentir
prise _____ nom féminin // participe passé de prendre // forme conjuguée de priser
courant ___ nom masculin // participe présent de courir // préposition
or ________ conjonction de coordination // nom masculin singulier
plus ______ adverbe // adverbe de négation // nom masculin
point _____ adverbe de négation // nom masculin singulier
vis _______ nom féminin // forme conjuguée de voir et de vivre
montre ____ nom féminin // forme conjuguée de montrer
partis ____ forme conjuguée de partir // participe passé pluriel // nom masculin pluriel
vous ______ pronom personnel sujet ou objet.
nous ______ idem
etc.

Il y a de nombreux mots qui ont plusieurs natures grammaticales, et le correcteur doit trouver laquelle s’applique dans le contexte. Il faut constamment faire attention à ça, sinon c’est d’explosion de faux positifs assurée. Pourtant, malgré les règles de prudence, il y a toujours des faux positifs. Parce que si on ne signalait que les erreurs certaines, on ne signalerait pas grand-chose.

L’autre problème, c’est que les homonymes en français sont nombreux et les confusions pas forcément faciles à détecter.

  • a / à / as / ha
  • est / et / es / ai / ait / aie / aies / ais / hé / eh / haie / hais
  • été / étai / était / étais
  • dans / d’en / dent
  • desceller / déceler / desseller
  • faite / faîte / fête
  • la / là / l’a / l’as / las
  • mal / mâle / malle
  • or / hors
  • ou / où
  • on / ont
  • notre / nôtre
  • par / part / pare
  • prêt / près / pré
  • quand / quant / qu’en
  • sans / s’en / sens / c’en / cens / sent / cent / sang
  • serre / serf / sers / cerf
  • sot / seau / sceau
  • soi / soie / soit / sois
  • son / sont
  • soutien / soutiens / soutient
  • suis / suie / sui / suit
  • tort / tore / taure / tord
  • ver / vers / vert / verre

Ajoutons à cela les conjugaisons homophones :

  • manger / mangé / mangez / mangeais / mangeait
  • fus / fut / fût

En bref, la difficulté du français, c’est qu’il est rempli de nombreux mots qui s’écrivent de la même façon avec des natures différentes et de nombreux mots différents qui se prononcent de la même façon et qui engendrent nombre de confusions à l’écrit.

Les manières d’écrire en respectant la grammaire sont extrêmement nombreuses, mais les manières de mal écrire sont illimitées.

Campagne de financement

Pour ceux que ça intéresse, c’est sur Ulule.

Je vais évoquer ici quelques aspects techniques dont je ne parle pas sur Ulule.

Fournir de meilleures suggestions

Détecter les erreurs et suggérer quelle est la bonne graphie sont deux choses bien différentes. Dans certains cas, il est plus facile de détecter les erreurs que de savoir que suggérer. Mais l’inverse est aussi vrai, il existe des erreurs difficiles à détecter où il serait pourtant facile de suggérer la graphie correcte.

Grammalecte parvient à présent à faire des suggestions dans la plupart des cas, mais il reste quand même du travail à faire sur ce point. Prenons un exemple simple, une erreur que j’ai fréquemment vue sur ce site :

Je m’en fou.

Ici, le correcteur voit l’erreur mais est incapable de fournir une suggestion, parce qu’il n’existe aucun lien entre l’entrée “fou” et l’entrée “foutre” d’où dérivent toutes ses conjugaisons. Le correcteur ne sait pas où chercher une conjugaison adéquate. Pour parfaire le système de suggestion, il faudrait établir des passerelles entre tous les mots grammaticalement distincts sur leurs liens phonétiques éventuels.

Évidemment, si on prend la peine d’écrire des règles spécifiques pour gérer les cas particuliers, c’est possible de suggérer correctement, mais ce ne serait guère efficace dans la mesure où les mots homophones sont nombreux. Il faudrait écrire trop de règles.

Améliorer la détection des erreurs

Pour l’instant, si le préprocesseur de texte est déjà très employé, il est encore sous-exploité et on peut aller plus loin, mais cela réclame du temps et beaucoup de tests et de patience. La correction grammaticale est encore grandement améliorable, même si les choses “faciles” à faire sont de moins en moins nombreuses. La simplification des groupes nominaux pourrait être bien meilleure, c’est un vaste chantier qui est entamé depuis environ un an. Le principal obstacle à son renforcement, c’est justement l’absence d’une désambiguïsation efficace.
Il y a encore aussi pas mal de vérifications simples à écrire sur des tas de confusions possibles. Je me suis assez peu occupé de ça jusqu’à présent.

Le développement du correcteur suit depuis le commencement la même logique : une montée en puissance progressive en essayant d’éviter les faux positifs.

Écrire des règles, c’est assez rapide ; détecter les faux positifs, c’est beaucoup plus long ; ceux-ci ont tendance à survenir là où on s’y attend le moins. C’est ce qui est le plus exigeant : maintenir un ensemble de règles, améliorer l’existant, tester, trouver de nouvelles possibilités. Lorsqu’on s’occupe d’un correcteur grammatical, on passe surtout son temps à peaufiner des détails, à ajuster le fonctionnement de l’existant, à arrondir les angles. Oubliez l’idée de concevoir l’algorithme ultime qui saura gérer tous les cas. Même quand on est à peu près sûr d’écrire une petite règle tranquille qui ne générera aucun faux positif, la réalité va très probablement nous rappeler à l’ordre et nous obliger à slalomer sur ce qui paraissait au commencement comme une belle ligne droite. S’occuper de correction grammaticale, c’est marcher sur un chemin pavé d’embûches subtiles.

Désambiguïsation

Bien que le correcteur fasse déjà de la désambiguïsation à sa manière, brutalement, améliorer cet aspect ne serait pas du luxe pour la connaissance du contexte des erreurs. J’hésite encore sur la mise en œuvre. “Tokeniser”, pourquoi pas, mais ce n’est pas ma solution favorite. Utiliser le préprocesseur de texte pour créer un genre de carte signalétique, c’est pas mal, mais ça ressemble à de la bidouille. Employer des trucs et astuces, comme je le fais déjà maintenant, toujours via le préprocesseur de texte, ce n’est pas ce qu’il y a de plus commode, surtout pour l’intelligibilité de l’ensemble des règles. Je n’ai pas encore trouvé une solution simple et efficace. En rédigeant ce billet, une solution plaisante m’est venue. Ce sera un désambiguïsateur multi-passes sans tokenisation. Il fonctionnera en dressant un index de balises grâce des règles de désambiguïsation qui seront exécutées au commencement de chaque passe, avant même le préprocesseur de texte. Il suffira, lors de l’analyse lexicale, que le correcteur interroge en premier lieu cet index. Ce mécanisme devrait accroître grandement la capacité de reconnaissance des erreurs, car le désambiguïsateur diminuera les incertitudes.

Fiabilité des versions (tests unitaires)

Triste à dire, mais il n’y a à l’heure actuelle aucun test unitaire dans Grammalecte. Tout simplement parce que le correcteur est pour l’instant incapable de fonctionner hors de Writer. Les tests faits avant chaque publication se limitent à deux fichiers ODT que j’ouvre dans le traitement de texte : un qui référence les faux positifs éventuels, un autre qui liste des erreurs grammaticales à détecter. J’ouvre encore quelques autres fichiers pour voir si tout va bien. Mais ce n’est pas du tout pratique. Les tests unitaires accéléreraient beaucoup le développement, car les bugs et les régressions seraient détectés aussitôt, ce qui ne serait pas du luxe.

En finir avec la dépendance à Hunspell et à LibreOffice/OpenOffice

La raison pour laquelle Grammalecte est pour l’instant dépendant de LibreOffice/OpenOffice, c’est sa dépendance à Hunspell, le correcteur orthographique, qu’il interroge sans cesse pour connaître la nature grammaticale des mots.

Hunspell remplit sa tâche, mais les informations qu’il fournit sont présentées en vrac. Il faut traiter les données avant de pouvoir les exploiter. Quand vous demandez la nature grammaticale d’un mot, vous récupérez en fait toutes les étiquettes que le dictionnaire contient (et il y en a potentiellement pas mal). Il faut trier. Du coup, pour l’instant, je limite les données incluses dans le dictionnaire aux seules étiquettes grammaticales, afin d’éviter d’alourdir le boulot.

Plutôt que de recréer Hunspell en Python, il est préférable de créer un dictionnaire binaire indexable bâti sous la forme d’un gigantesque graphe de mots, facilement parcourable, ce qu’on peut appeler aussi un automate à états finis.

Un graphe de mots, ça ressemble à ça :

Pour savoir si un mot existe dans un graphe, on part de l’état initial et on suit les arcs représentés par les flèches, et si l’on parvient jusqu’à l’état final, le mot est considéré comme existant. Pour le correcteur, le graphe devra contenir tous les mots du français, et à la suite de chaque mot les informations grammaticales. Cette construction se fait à partir d’un simple fichier texte listant toutes les formes fléchies du français, leur lemme et les étiquettes informatives.

Les principales fonctions de cet automate seront de dire si un mot existe dans le lexique, donner son lemme (“aimer” est le lemme de “aime”), fournir ses étiquettes grammaticales, et éventuellement d’autres. Doté d’un module de suggestion, il peut même servir de correcteur orthographique.

Grammalecte existera bien sûr toujours comme extension pour Writer mais, grâce à cela, il pourra exister comme serveur autonome capable de fournir des corrections grammaticales à tout programme lui passant du texte à analyser, au format JSON. Chaque erreur contiendra les informations suivantes :

  • position de l’erreur,
  • type d’erreur (pour les applications qui auraient l’intelligence de souligner avec différentes couleurs),
  • message explicatif,
  • suggestion(s),
  • [optionnellement] hyperlien vers une page explicative plus complète,
  • identifiant de la règle détectant l’erreur (utile seulement pour le débogage).
Conversion du code en JavaScript pour l’extension Firefox/Thunderbird

Pour rappel, le but est bien d’avoir une extension qui peut fonctionner sans faire appel à un serveur local ou distant. Il faudra tout réimplémenter en JavaScript. Pour Firefox, je voudrais que le correcteur puisse aussi analyser le contenu d’une page web et pas seulement les zones d’édition de texte. Pour l’instant, Firefox, contrairement à LibreOffice et OpenOffice, ne possède pas (encore) d’API pour la grammaire, ce qui complique l’interfaçage avec les utilisateurs, mais ça ne semble pas insurmontable. À part ça, il n’a pas grand-chose à dire si ce n’est qu’il y a des épines et des ronces en perspective.

Autres considérations Les autres langues ?

Bonne nouvelle ! Même si je n’ai pas l’intention de m’occuper des autres langues, ce qui sera fait pour le français sera également possible pour bien d’autres. L’une des raisons pour lesquelles Lightproof est peu employé, c’est l’absence de ressources lexicales. Lightproof utilise les dictionnaires pour Hunspell, dont bien peu peuvent servir à la correction grammaticale puisque seuls les dictionnaires français et hongrois sont grammaticalement étiquetés. Or, le compilateur de lexique en dictionnaire binaire indexable dont j’ai parlé ci-dessus pourra réutiliser tous les lexiques de LanguageTool. Autrement dit, toutes les langues qui disposent d’un lexique chez LanguageTool pourront utiliser le moteur de Grammalecte.

Et la gestion du dictionnaire ?

Le site qui gère le dictionnaire français a fait son temps. Il est encore utile et assez pratique, mais il pourrait être bien mieux, plus simple notamment. Même s’il n’est pas difficile de participer, il faut quand même un peu de temps pour comprendre la logique. Mais comprendre n’est même pas exigé, il suffit de proposer de nouveaux mots. Malheureusement ça rebute apparemment beaucoup de monde. Les utilisateurs veulent aller vite et ne voient les résultats de leur participation que des mois plus tard, quand une nouvelle version est publiée. Le site est pensé sur un mode cathédrale et non sur un mode bazar. Après des années d’utilisation, j’en vois les limites, et je pense qu’il aurait dû être conçu autrement. Le refonte du site ne fait pas partie de la campagne de financement participatif. Idéalement, j’aimerais avoir un jour le temps de tout réécrire en Python (avec un framework comme Flask) en utilisant un autre concept que celui d’aujourd’hui, permettant une plus grande personnalisation, une plus grande modularité, un contrôle plus simple. C’est un vaste chantier.
Pour pallier ce problème, je prévois de créer dans le correcteur de LibreOffice et de Firefox un assistant qui simplifiera toute la procédure.

Les correcteurs grammaticaux servent-ils à quelque chose ?

Certaines personnes, en général avec une forte estime de leurs connaissances en orthographe et en grammaire, pensent que les correcteurs grammaticaux sont tous mauvais et ne servent à rien, et surtout pas à eux. Cette opinion est en partie légitime et en partie fausse.

Les correcteurs informatiques, ne comprenant rien à ce que vous écrivez, ont bien sûr du mal à détecter les erreurs dans les phrases complexes et parfois même dans des contextes simples. Dans bien des cas, les connaissances en grammaire d’un utilisateur bien instruit lui permettront de trouver plus d’erreurs que le correcteur grammatical.

Néanmoins, ceux qui pensent que connaître la langue parfaitement suffit à ne jamais faillir se trompent, car nombre d’erreurs sont dues à l’inattention, à la fatigue, à des copier-coller mal ajustés, à des défauts de reconnaissance optique. Or, l’ordinateur ne relâche jamais son attention, son œil ne fatigue jamais et il examine même ce qui ne vous vient pas à l’esprit.

Par ailleurs, pour les personnes dont les connaissances sont lacunaires, il peut se révéler pédagogue. Si par exemple vous ne connaissez pas le participe passé du verbe “avoir” (“eu”, que beaucoup écrivent erronément “eut”) ou du verbe “lire” (“lu”, et non “lut”), le correcteur finira immanquablement par trouver des occasions de vous signaler vos erreurs, même s’il peut ne pas toujours les repérer dans les contextes complexes, car il les détectera dans les contextes simples (Erreurs détectées dans “j’ai eut”, “ils n’ont pas eut”, etc.).

Le mot de la fin

Merci de m’avoir lu jusqu’ici.

Il semble que l’orthographe et la grammaire françaises soient de plus en plus ignorées, même des personnes les plus instruites. C’est du moins ce que disent souvent des articles alarmistes. J’ignore si cela est vrai, mais ce que je lis sur le Web m’étonne parfois, tant les bases de la grammaire semblent parfois méconnues. Qu’on ne connaisse pas la conjugaison de tous les verbes, c’est compréhensible, mais confondre “ça” et “sa”, “ce” et “se”, “quand”, “quant” et “qu’en” semble signifier qu’il faudrait une remise à niveau pour pas mal de monde. Cela dit, ce n’est peut-être pas si étonnant si l’on songe que le Web a remis à l’écriture des personnes qui n’écrivaient plus rien depuis fort longtemps.

Si vous pensez que Grammalecte mérite de s’étendre hors de LibreOffice, si vous trouvez que la langue française est maltraitée et qu’il faudrait avoir un outil pour dénicher les erreurs sur le Web, si vous voulez voir des mots normalement rejetés intégrés dans le correcteur, c’est sur Ulule que ça se passe.

Télécharger ce contenu au format Epub

Lire les commentaires

Concours de Programmation International CodinGame Samedi 25 Avril 2015

21 avril, 2015 - 20:17

Le 25 Avril prochain à 18h (heure de Paris), CodinGame lancera son prochain challenge de programmation en ligne « There Is No Spoon ».

Gratuite et ouverte aux développeurs du monde entier, la compétition se déroulera sur 3 heures.
Objectif : coder pour le plaisir et tenter de résoudre deux problèmes de programmation le plus vite possible, de la manière la plus optimisée.

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

Les modalités de participation sont les suivantes :

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

Lire les commentaires

Un point d'avancement sur Neovim

21 avril, 2015 - 20:16

Neovim est un éditeur de texte, issu d'un fork de Vim. Il vise à le rendre plus moderne. En particulier, faciliter le développement et l'utilisation de greffons, et permettre de l'intégrer plus facilement dans d'autres outils.

Le fork date d'un peu plus d'un an et le travail commence à payer. En plus d'un gros nettoyage de la base de code, les développeurs de Neovim ont mis en place un système de plugins, de greffons, qui peuvent désormais tourner à l'extérieur du processus principal et communiquer avec lui via msgpack. On peut également apprécier la possibilité de lancer un terminal à l'intérieur de Neovim, grâce à l'inclusion récente de la libvterm.

Mais pour accélérer le développement, Neovim a besoin de vous. Le développeur principal, @tarruda passe une partie de son temps sur Neovim et une autre partie à faire des missions en freelance pour gagner sa vie. Grâce à des dons, il pourrait diminuer le temps passé sur les missions, et ainsi passer plus de temps à faire vivre Neovim.

Personnellement, je suis un utilisateur comblé de Neovim depuis quelques mois. Bien que celui-ci soit toujours en version alpha, il est très stable et le passage de Vim à Neovim s'est fait sans aucun souci. Aussi, j'ai participé à l'appel à dons et vous encourage à faire de même pour promouvoir ce projet qui le mérite bien !

Télécharger ce contenu au format Epub

Lire les commentaires

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

21 avril, 2015 - 14:53

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

[Next INpact] WikiLeaks: l'intervention des géants du Blu-ray dans le dossier Hadopi VLC

Par Marc Rees, le vendredi 17 avril 2015. Extrait:

WikiLeaks a diffusé ce matin 30 000 documents et 170 000 emails dérobés à Sony Pictures Entertainment par des pirates informatiques. Dans le lot, une cinquantaine de documents concerne la demande VideoLan adressée en 2012 à la Hadopi pour permettre l’interopérabilité du Blu-ray.

Lien vers l'article original: http://www.nextinpact.com/news/93861-wikileaks-l-intervention-geants-blu-ray-dans-dossier-hadopi-vlc.htm

[Breizh Info] On peut tout faire avec GitHub, même suivre l'évolution du Code Civil

Par la rédaction, le jeudi 16 avril 2015. Extrait:

Suivre les changements multiples du Code Civil, ce n’est pas très simple. Même quand on connaît Legifrance qui présentent les versions successives d’une même loi, ou qu’on suit assidument les travaux des parlementaires. Ne serait-ce parce qu’un amendement ou un paragraphe de loi, cela ressemble souvent à ça: À l’article 165 du même code, le mot: «devant» est remplacé par les mots: «lors d’une cérémonie républicaine par». On peut trouver plus ergonomique, n’est-ce pas?

Lien vers l'article original: http://www.breizh-info.com/25322/actualite-societale/on-peut-tout-faire-avec-github-meme-suivre-levolution-du-code-civil

[L'OBS] L’algorithme du gouvernement sera intrusif et inefficace. On vous le prouve

Par Andréa Fradin, le mercredi 15 avril 2015. Extrait:

On a demandé à des spécialistes en informatique s’il était possible de concevoir un programme répondant aux attentes du gouvernement en matière de renseignement. Résultat: techniquement, c’est très foireux.

Lien vers l'article original: http://rue89.nouvelobs.com/2015/04/15/lalgorithme-gouvernement-sera-intrusif-inefficace-prouve-258672

Et aussi:

[Les Echos] Après le logiciel libre, voici le matériel libre

Par Jacques Henno, le mardi 14 avril 2015. Extrait:

L'«open source» arrive dans l'univers des objets: de plus en plus de designers et d'industriels renoncent à une partie de leurs droits sur leurs créations. Un mouvement pas toujours désintéressé…

Lien vers l'article original: http://www.lesechos.fr/idees-debats/sciences-prospective/0204283695263-apres-le-logiciel-libre-voici-le-materiel-libre-1110940.php

Et aussi:

[Nouvelle République] Pour vivre le Web en liberté

Par Laurent Gaudens, le mardi 14 avril 2015. Extrait:

Le logiciel libre, c’est une philosophie. Et l’APP3L est là pour diffuser la bonne parole et aider ceux qui veulent franchir le pas.

Lien vers l'article original: http://www.lanouvellerepublique.fr/Vienne/Communautes-NR/n/Contenus/Articles/2015/04/14/Pour-vivre-le-Web-en-liberte-2294174

Et aussi:

[L'Informaticien] L’Etat va rafraîchir le Référentiel Général d’Interopérabilité

Par Emilien Ercolani, le mardi 14 avril 2015. Extrait:

Le RGI, publié pour la première fois en 2009, devrait évoluer. Une version «en mode provisoire» est disponible en ligne et ouverte aux commentaires publics.

Lien vers l'article original: http://www.linformaticien.com/actualites/id/36347/l-etat-va-rafraichir-le-referentiel-general-d-interoperabilite.aspx

Et aussi:

[Next INpact] La programmation informatique pourrait faire son entrée dans le programme de CE1

Par Xavier Berne, le mardi 14 avril 2015. Extrait:

L’apprentissage de la programmation informatique sera-t-il bientôt obligatoire dès l’école primaire? C’est effectivement ce qui se dessine au travers des projets de programme dévoilés hier par l’Éducation nationale. Des enseignements plus poussés en matière d’algorithmique auraient ensuite lieu au collège, à partir de la cinquième.

Lien vers l'article original: http://www.nextinpact.com/news/93814-la-programmation-informatique-pourrait-faire-son-entree-dans-programme-ce1.htm

Et aussi:

Télécharger ce contenu au format Epub

Lire les commentaires

Podcast francophone dédié à la cybersécurité : No Limit Secu

21 avril, 2015 - 13:23

Un épisode sur NAXSI un WAF — parefeu applicatif pour le web — open-source avec Thibault Koechlin et Sébastien Plot : quoi de mieux comme occasion pour porter à votre connaissance l'existence d'un podcast (ou bala(do)diffusion) dédié à la cybersécurité ?

No Limit Secu est un podcast indépendant, animé par des personnes passionnées qui sont parties prenantes dans le domaine de la cybersécurité à des rôles et dans entreprises diverses.

L'équipe du podcast prend beaucoup de plaisir à réaliser ces épisodes et souhaite partager cela avec la communauté LinuxFr.org. Dans la mesure du possible, un nouvel épisode est publié chaque semaine. C'est donc aussi l'occasion de vous proposer de contribuer à un épisode si vous souhaitez aborder une problématique ou traiter d'un sujet dans lequel vous êtes impliqué(e) (bien entendu, dans le domaine de la cybersécurité). Pour cela, vous pouvez contacter l'équipe via Twitter : @nolimitsecu.

Voici les thèmes traités jusqu'à présent dans le podcast :

Télécharger ce contenu au format Epub

Lire les commentaires

JM2L, c'est reparti \o/

20 avril, 2015 - 17:08

Après une année de mise en jachère, les Journées méditerranéennes du logiciel libre (JM2L), c'est reparti ! Organisée par l'association Linux Azur et l'École Polytech Nice-Sophia, voici venir la 9e édition le samedi 28 novembre 2015, à l'école Polytech'Nice-Sophia (site des templiers) au 930, Route des Colles - 06903 Sophia Antipolis.

L'accès est libre et gratuit. Venez avec votre famille, vos amis et vos relations découvrir ou faire connaître un monde de partage des ressources et des savoirs.

Le thème de cette année sera « Do it yourself », en français « faites-le vous-même ». Réparer votre grille-pain, construire votre imprimante 3D, héberger vos photos chez vous, c'est possible ! La philosophie « Do it yourself » c'est se ré-approprier ses objets, son ordinateur et, c'est lutter contre l'obsolescence programmée.

Les logiciels libres sont ceux que l'on peut copier, étudier, modifier et diffuser librement.

Ces libertés s'appliquent également à des œuvres d'art, du matériel, des ressources pédagogiques, etc. Les JM2L sont l'occasion de rencontrer et de partager avec un grand nombre de passionnés qui défendent ces valeurs.

Vous aussi, venez participez à cette aventure dans une ambiance chaleureuse et une philosophie fondée et consacrée aux valeurs de liberté et d'entraide.

Linux ? C'est le luxe !

Contacter / Participer :

  • mobile : +33 6 52 42 31 37
  • courriel : contact at jm2l.linux-azur dot org
Télécharger ce contenu au format Epub

Lire les commentaires

Sortie de Pharo et de son environnement de développement en version 4.0

20 avril, 2015 - 17:04

Comme promis, un an après Pharo 3.0 nous sommes heureux de vous annoncer la sortie de Pharo 4.0. Entre autres nouvelles fonctionnalités, les outils de l'environnement de développement ont été entièrement revus.

Pharo c'est quoi ?

Pharo consiste à la fois en un langage de programmation purement objet inspiré de Smalltalk (avec compilateur et machine virtuelle) et un environnement dynamique de programmation. Pharo est diffusé sous licence MIT. Le langage Pharo s'appuie sur les bases solides de Smalltalk tout en y ajoutant, entre autres, les concepts modernes de trait (héritage multiple) et de slots (pour attacher du comportement à la lecture/écriture de variables d'instances).

Qui l'utilise ?

Actuellement 23 universités, 13 groupes de recherches et une cinquantaine de sociétés déclarent utiliser Pharo pour leurs développements (et si vous développez avec Pharo, merci de nous le faire savoir :)).

Que font-ils avec ?

Le catalogue de projets référence plus de 300 projets libres. Quelques entreprises partagent leurs success stories. Deux livres gratuits et libres (licence CC-by-sa) permettent d'apprendre les bases et les concepts avancés du langage et de son environnement : Pharo by example (disponible en français) et Deep into Pharo.

Nouveautés

La grande communauté internationale de développeurs Pharo a travaillé d'arrache-pied pour vous offrir le meilleur en matière d'environnement de développement dynamique, tout en vous rappelant que Pharo vous appartient aussi. Vous pouvez retrouver toutes les nouveautés de la version 4.0 de Pharo dans le changelog détaillé et dans l'annonce officielle.
Parmi ces nouveautés, outre les 1697 bugs corrigés depuis Pharo 3.0, on trouve une réécriture de l'outil d'inspection d'objets, de l'outil de recherche et du workspace (les GT tools).

GTools:

Le workspace (ou playground) offre une zone de texte (avec coloration syntaxique et auto-complétion) dans lequel le développeur peut tester son code. Dans l'image ci-dessous, le développeur a tapé FileSystem workingDirectory dans la zone de texte pour étudier à quoi ressemble l'objet résultant (une instance de la classe FileReference). En tapant Alt+Shift+g, un inspecteur s'ouvre à droite pour étudier cet objet en détail : dans le cas de la classe FileReference, l'inspecteur montre le contenu du fichier ou du dossier.

L'inspecteur permet d'étudier et de manipuler les objets du programme. Chaque classe peut définir plusieurs façons d'être représentée dans l'inspecteur. Allez voir la vidéo, ça vaut le détour. Ci-dessus, on peut voir qu'inspecter un dossier affiche son contenu. Ci-dessous, à droite, on peut voir qu'inspecter un dictionnaire (i.e., une table de hachage) affiche toutes les paires clé/valeur.

Le spotter quant à lui aide les développeurs à rechercher rapidement n'importe quel objet du système. Allez voir la vidéo, elle vaut largement son pesant de cacahouètes. L'utilisation du spotter permet, entre autres, de naviguer au travers du code :

  • Explorer une classe, poursuivre dans ses méthodes et variables ;
  • Obtenir les classes implémentant une méthode, obtenir les endroits où cette méthode est appelée.

Et bien d'autres!

Vous pouvez consulter une présentation complète ici

Retrouvez toute l'actualité de l'équipe GT sur leur site.

OSWindow

OSWindow propose une nouvelle manière de gérer les fenêtres et les événements :

  • création de fenêtres natives dans un système d'exploitation ;
  • événements gérés par la bibliothèque SDL2 ;
  • modélisation 3D avancée via Woden.
Dark Theme

Les amateurs d'environnements sombres sauteront de joie !

Et plus encore

D'autres briques majeures évoluent telles que Zinc (la bibliothèque réseau), Fuel (le sérialiseur d'objets ultra-rapide) et Versionner (l'outil de gestion de dépendances et de release).

Côté visuel, Pharo introduit de nouvelles polices par défaut. Morph (la bibliothèque de composants graphiques) prend un coup de jeune grâce à Athens (la bibliothèque de graphiques vectoriels). Cela permet de proposer tout un panel de nouveaux widgets.

Pour les amateurs de Raspberry et de systèmes embarqués, vous pouvez désormais compiler la machine virtuelle sur Raspbian. Pharo tourne maintenant aussi sur FreeBSD.

Télécharger ce contenu au format Epub

Lire les commentaires

Soirée Linux Alpes à Digne le 28 mai 2015

19 avril, 2015 - 23:24

Linux-Alpes vous convie à sa prochaine soirée dignoise le 28 mai 2015 à partir de 20h chez Xsalto.

Au programme, démonstration d'installation de Linux.

Nous présenterons notamment la nouvelle version de Ubuntu 15.04 Vivid Vervet ainsi que Debian Debian 8 Jessie.

Plan d'accès

(voir le plan sur Umap)

Télécharger ce contenu au format Epub

Lire les commentaires

Spacewalk 2.3

19 avril, 2015 - 15:22

Spacewalk est un logiciel de gestion des systèmes et de leurs mises à jour pour les distributions basées sur les paquets RPM. Ce nom ne vous dit peut-être rien, mais ce projet est en fait celui qui sert de base à Red Hat Satellite 5 (RHN), ainsi qu'à SUSE Manager. Malgré la disponibilité de Katello et de Satellite 6, Spacewalk est toujours maintenu.

Le 14 avril dernier est sortie la version 2.3 de ce logiciel, dont les changements principaux sont détaillés en deuxième partie de dépêche.

Les ajouts

Suite à la prise en charge des clients RHEL 7 et CentOS 7 dans Spacewalk 2.2, cette version 2.3 est enfin installable sur ces systèmes. Fedora 21 se voit ajouté à la liste, en tant que serveur et client.

Spacewalk est capable d'être couplé à un système d'authentification externe, ce qui évite de déclarer tous les comptes en local si vous disposez d'un annuaire compatible. L'apparition de la commande spacewalk-setup-ipa-authentication devrait faciliter ce genre de cas de figure.

Bien que Spacewalk soit principalement utilisé avec une base de données PostgreSQL, il est toujours possible d'utiliser Oracle. Des contributions ont vu la possibilité d'utiliser Oracle 12c en tant que base de données externe.

Dans le cadre de l'utilisation en tant que proxy, Spacewalk est maintenant capable de gérer l'en-tête HTTP If-Modified-Since pour les méta-données de yum.

L'interface utilisateur continue sa finition, ainsi que sa standardisation utilisant Patternfly. Elle ne contient d'ailleurs plus de code Perl, et est exclusivement en Java à présent.

Plein d'autres "petites" améliorations sont présentes. Parmi elles, on trouvera l'option --dry-run ainsi qu'une meilleure gestion des dépendances dans la commande spacewalk-clone-by-date, la prise en charge de dépôts compressés au format xz, et l'ajout du fuseau horaire pour la Corée du Sud.

L'API évolue, certains appels apparaissent, d'autres disparaissent. Il est recommandé de lire la documentation dédiée à l'API sur le site du projet.

Pour clore ce chapitre sur les nouveautés, on remarquera que le code source de Spacewalk est maintenant disponible sur le très célèbre Github, et que le projet s'est doté d'un nouveau nom de domaine : spacewalkproject.org

Les suppressions

Comme annoncé lors de la sortie de Spacewalk 2.2, certains éléments ont été supprimés. Tout d'abord, l'installation (ou mise à jour) de la partie serveur n'est plus possible sur RHEL 5 ou CentOS 5. La partie cliente est elle toujours disponible. Adieu aussi à la prise en charge de Solaris.

Cela avait aussi été annoncé lors de Spacewalk 2.2, les fonctionnalités de surveillance elles aussi disparaissent en version 2.3.

Télécharger ce contenu au format Epub

Lire les commentaires

Atélili #3 : «Communiquer de façon confidentielle sur internet» - 24 avril 2015 - Lille

19 avril, 2015 - 11:52

Ce 24 avril, Atélili propose un atelier dont la thématique est «Communiquer de façon confidentielle sur Internet».

Cet atelier s'inscrit dans la lignée de nos ateliers «Chiffrement». Pour rappel, le chiffrement est le procédé informatique par lequel nous pouvons empêcher la lecture de nos données par un tiers.

L'accent sera mis cette fois-ci sur les logiciels qui permettent de dialoguer avec une autre personne sur Internet, et qui assurent la confidentialité des communications. Il s'agira par exemple des logiciels de messagerie instantanée Pidgin et Gajim (pour envoyer/recevoir des messages textuels), et du logiciel de VoIP nommé Jitsi (pour la voix et la video).

Signalons en effet que les logiciels de communication habituels (email non chiffré, Skype, Facebook…) ne proposent aucun chiffrement, et que la confidentialité de nos échanges est donc mise en péril à plusieurs niveaux.

En introduction, on profitera de cet atelier pour discuter du très récent «projet de loi relatif au renseignement», qui instaure en France un régime de surveillance généralisée de la population.

Plan/Déroulement :

  • 18h30 : discussion sur le projet de loi relatif au renseignement ;
  • 19h15 : installation et utilisation des outils de communications chiffrées (jitsi, pidgin, enigmail…).

Cet atelier est tout public, vous pouvez venir quel que soit votre degré de maitrise de l'outil informatique. Pensez à ramener votre ordinateur portable si vous souhaitez pratiquer.

Les atélilis sont des ateliers qui se déroulent mensuellement. Ils sont co-organisés par des individus et plusieurs collectifs promouvant le logiciel libre dans la région tels que Chtinux et CLX. Comme pour tous les ateliers que nous proposons, l'emploi de logiciels libres apparaît comme une nécessité et nous vous y encouragerons.

D'autres infos sur notre site web : http://atelili.tuxfamily.org .

Infos pratiques :

  • date : vendredi 24 avril 2015 à 18h30 (confirmé) ;
  • lieu : M.R.E.S., 23 rue Gosselet, au 1er étage (salle «moulin»), à Lille.
Télécharger ce contenu au format Epub

Lire les commentaires

pkgsrc 2015Q1

18 avril, 2015 - 19:05

Dans un message à des listes de diffusion pkgsrc et NetBSD, Alistair Crooks a annoncé la disponibilité de la branche pkgsrc-2015Q1. Pkgsrc (prononcer package source) est une infrastructure de construction de logiciels tiers pour NetBSD, ainsi que pour d’autres systèmes de type UNIX. Il permet donc à NetBSD et à d’autres systèmes d’exploitation de disposer de nombreux logiciels sous forme source, mais aussi sous forme binaire.

Les développeurs pkgsrc fournissent une nouvelle version stable chaque trimestre. Comme son nom l’indique, pkgsrc 2015Q1 est donc la première sur les quatre de l'année 2015 et est disponible depuis le 3 avril dernier.

Plus de détails sur cette version en particulier en seconde partie de dépêche, qui reprend grandement le courriel d'annonce.

Si vous ne connaissez toujours pas pkgsrc

À force de publier des dépêches sur le sujet (suivez le tag pkgsrc), espérons que vous commencez à connaître la chanson : pkgsrc, c'est le système de paquets logiciels pour NetBSD, issu d'un fork en 1997 de celui de FreeBSD. Nos amis au drapeau orange étant adeptes de la portabilité, il est logique que leur système de paquets puisse fonctionner ailleurs et compte toujours sa vingtaine de plateformes compatibles, allant des systèmes BSD à Windows (grâce à Cygwin/Interix/Services For Unix) en passant par GNU/Linux, OS X et Solaris.

Pour être plus concret sur la portabilité de pkgsrc, certaines personnes maintiennent des dépôts de paquets binaires en dehors de ceux pour NetBSD. Ainsi, le dépôt de la société Joyent contient des ensembles de paquets pour SmartOS, GNU/Linux mais aussi OS X. Saluons aussi le projet Save OS X, qui en plus de fournir un dépôt pour x86_64 (celui de Joyent ne fournit cette architecture que depuis peu), propose articles et courtes vidéos introduisant pkgsrc pour le système à la pomme.

Enfin, ces initiatives ne sauraient être couronnées de succès sans pkgin, gestionnaire de paquets maintenu par iMil et dont la version 0.8.0 est disponible depuis plusieurs semaines, apportant entre autres un nouveau fichier de configuration, preferred.conf, qui liste des contraintes de versions pour différents logiciels installés (ou à installer). Par exemple, mysql-server<5.6 permet de bloquer mysql-server en dessous de la version 5.6, php>=5.4 s'assurera que PHP est installé au moins en version 5.4, et enfin autoconf=2.69.* fera en sorte qu'autoconf ne soit installé que dans une sous-version de la 2.69.

Les chiffres du trimestre

En termes de paquets, pkgsrc-2015Q1 c’est (entre parenthèses la différence avec pkgsrc-2014Q4 lorsque le chiffre était indiqué) :

  • 15246 paquets possibles (-264) ;
  • 14896 paquets binaires compilés avec clang pour NetBSD-current/x86_64 (-153) ;
  • 13092 paquets binaires compilés avec gcc pour SmartOS/x86_64 (+120) ;
  • 13028 paquets binaires compilés avec gcc pour SmartOS/i386 ;
  • 12802 paquets binaires compilés avec clang pour FreeBSD 10.1/x86_64 ;
  • 11224 paquets binaires compilés avec gcc pour Darwin 8.11.0/powerpc (Mac OS X 10.4.11) ;
  • 10019 paquets binaires compilés avec gcc pour Darwin 10.8.0/i386 (Mac OS X 10.6.8).

Ce trimestre, en termes de modifications, il y a eu :

  • 216 paquets ajoutés ;
  • 46 paquets retirés, dont 11 avec un successeur ;
  • 2007 paquets mis à jour ;
  • 2 paquets ont été renommés.
Les changements

Parmi les ajouts ou mises à jour notables, on peut remarquer :

La campagne de nettoyage qui a lieu chaque trimestre permet de supprimer ce qui obsolète, ou non utilisé. Cette fois-ci, c'est au tour de PHP 5.3, bind 9.6 et 9.8, navi2ch et openmotif de partir, non sans avoir été très utiles par le passé.

Sans plus de précisions, l'annonce indique que des progrès ont été effectués dans l'intégration des cwrappers (qui permettent d'améliorer les performances des compilations massives de paquets), et que cela devrait être fini pour le prochain trimestre.

Autre avancée majeure, celle de la signature cryptographique des paquets et des vulnérabilités est elle aussi en cours d'intégration.

L'une des difficultés ces derniers temps était d'empaqueter des logiciels dont les sources se trouvent sur Github. Ce n'est plus le cas, grâce à l'ajout de la gestion de Github dans la variable MASTER_SITES. À noter aussi, des améliorations pour empaqueter les logiciels en Go ou en Haskell, le mail d'annonce remerciant Ryosuke Moro pour ce dernier.

pkgsrc-lts ?

La société Joyent, dans le cadre du développement de son système SmartOS, utilise pkgsrc pour publier des paquets binaires à destination de cette plateforme. Le passage d'une branche à l'autre chaque trimestre étant jugé trop rapide, Jonathan Perkin a lancé une sorte de pkgsrc-lts, qui vise à allonger les durées de mises à jour pour certaines branches de pkgsrc.

Dans le détail, l'entreprise compte maintenir chaque dernière branche de l'année (celles se terminant en Q4) durant trois ans, et porter sur ces branches les correctifs qui s'y rapportent, c'est-à-dire ceux concernant la sécurité, mais aussi la construction des paquets, tant qu'ils ne cassent pas la compatibilité au niveau ABI ou API.

Cette version de pkgsrc est bien entendu publique, et est accessible depuis le compte Github de Joyent. L'utilisation de cette version est encouragée, de même que la remontée de problèmes (et de leurs solutions ;) ). Rien n'est précisé concernant la publication de paquets binaires, mais on peut raisonnablement supposer que seul SmartOS sera pris en compte.

Joyent profite de l'occasion pour non seulement activer les cwrappers lors de la construction de ses paquets, mais aussi la signature cryptographique de ses paquets binaires !

Télécharger ce contenu au format Epub

Lire les commentaires

Le retour de F-CPU, le processeur libre

18 avril, 2015 - 16:08

Après 12 ans de silence, le projet Freedom CPU vient de redémarrer. Il a commencé par se doter d'un nouveau site tout propre, avec wiki, blog et (Ôh!) un git, mais surtout le projet repart de zéro en gardant juste le meilleur du travail réalisé autour de l'An 2000. En effet, le FC0 est une architecture RISC qui n'a pas beaucoup vieilli, alors que l'environnement, l'industrie et les applications ont radicalement changé.

Mais pourquoi relancer ce projet alors que ce microprocesseur n'a aucune chance d'équiper mon desktop ou laptop ?

D'abord parce que le desktop n'est plus là où la bataille fait rage (Intel a plus peur d'ARM que d'AMD). En 15 ans, la performance brute a plafonné et est devenue secondaire, alors la consommation et le parallélisme sont devenus primordiaux.

Ensuite parce qu'aujourd'hui encore plus qu'en l'An 2000, la liberté des plateformes est réellement en jeu, au point que même RMS sort (enfin !) de sa réserve. La France vient de passer une loi légalisant le pompage en masse des données sur Internet, mais demain, devrons-nous être forcés d'installer un mouchard/boîte-noire à la maison ?

Et puis les outils ont énormément évolué en 15 ans. Le simulateur GHDL est solide, on trouve facilement des FPGA de haute densité à des prix raisonnables, et on peut même faire de la synthèse du code VHDL sous Linux ! (j'en ai même vu y arriver)

Enfin, et surtout, parce que le YASEP1 commence à être assez mûr mais il est limité à 32 bits. L'architecture du F-CPU est complémentaire, et selon les besoins on peut choisir la bonne architecture, et pourquoi pas les faire travailler ensemble : le petit 32 bits travaillant comme microcontrôleur temps réel, le grand 64 bits comme processeur d'application.

Il est donc temps de réunir ces deux projets.

Une des nombreuses leçons apprises ces dernières années est que l'architecture elle-même compte assez peu et c'est l'environnement de développement et la masse critique qui contribuent le plus à son succès (sinon on serait débarrassés des x86 depuis des lustres). Pour cela, le F-CPU va partager l'environnement de développement du YASEP et bénéficier de l'expérience acquise depuis dix ans.

Avec un outil entièrement écrit en JavaScript, c'est clairement la "génération Arduino et Raspberry Pi" qui est ciblée, car les nouveaux arrivants sont plus sensibles à l'ouverture et la facilité d'utilisation (et pas juste la gratuité) que les ingénieurs expérimentés. Qui a envie de faire de l'administration système pour installer plusieurs outils obscurs avant de pouvoir enfin commencer à coder ? Peu de personnes ont actuellement cette patience, surtout avec les kits de développement qui deviennent de plus en plus faciles à utiliser.

Maintenant que les sites web sont remis en état de marche, l'étape suivante consiste à réécrire YGWM, l'environnement fenêtré en JavaScript. Écrit au début en mode "vite fait ça marche à peu près", il faut tout remettre au propre, corriger quelques bugs, et séparer les éléments spécifiques du YASEP afin que l'interface puisse fonctionner pour n'importe quel famille de processeur.

  1. Pour faciliter le développement des outils, un petit processeur‐jouet a été conçu : le YASEP — Yet Another Small Embedded Processor. De « jouet », le YASEP a grandi pour devenir un microcontrôleur original, cohérent, accessible et ne nécessitant quasiment aucune installation de logiciel, grâce à son site Web presque magique

Télécharger ce contenu au format Epub

Lire les commentaires

PacketFence v5 maintenant disponible!

17 avril, 2015 - 22:41

Inverse annonce la sortie de la version 5 de PacketFence. PacketFence est une solution de conformité réseau (NAC) entièrement libre (GPL v2), supportée et reconnue. Procurant une liste impressionnante de fonctionnalités comme un portail captif pour l'enregistrement ou la remédiation, une gestion centralisée des réseaux filaire et sans fil, le support pour le 802.1X, l'isolation niveau-2 des composantes problématiques, l'intégration au détecteur d'intrusions Snort et au détecteur de vulnérabilités Nessus - elle peut être utilisée pour sécuriser efficacement aussi bien des réseaux de petite taille que de très grands réseaux hétérogènes.

La version 5 de PacketFence apporte de nombreuses améliorations comme le mode actif/actif pour une grande extensibilité horizontale, l'intégration de Fingerbank pour la différenciation des appareils sur le réseau, l'intégration de StatsD pour un monitoring précis d'indicateurs de performance et la documentation a été entièrement revue.

PacketFence possède un grand nombre de fonctionnalités. Parmi celles-ci, on retrouve :

  • l'enregistrement des composantes réseau grâce à un puissant portail captif ;
  • le blocage automatique, si souhaité, des appareils indésirables tels les Apple iPod, Sony PlayStation, bornes sans fil et plus encore ;
  • l'enrayement de la propagation de vers et virus informatiques ;
  • le freinage des attaques sur vos serveurs ou diverses composantes réseaux ;
  • la vérification de la conformité des postes présents sur le réseau (logiciels installés, configurations particulières, etc.) ;
  • la gestion simple et efficace des invités se connectant sur votre réseau ;
  • des sources d'authentification variées, incluant Facebook et Google.

PacketFence est une solution non-intrusive qui fonctionne avec une multitude d'équipements réseaux (filaire ou sans fil) tels ceux de 3Com, AeroHIVE, Allied Telesis, Aruba, BelAir/Ericsson, Brocade, Cisco, Dell/Force10, Enterasys, ExtremeNetworks, Extricom, Hewlett-Packard/H3C, Huawei, Intel, Juniper Networks/Trapeze, LG-Ericsson US, Meru Networks, Motorola, Netgear, Nortel/Avaya, Ruckus, Xirrus et plus encore.

Télécharger ce contenu au format Epub

Lire les commentaires

La CCI Montpellier adopte le Pack Logiciels Libres de l’Entreprise

17 avril, 2015 - 16:00

Conçu pour faciliter le démarrage informatique au sein des TPE et PME, le Pack Logiciels Libres de l’Entreprise met à la disposition des entrepreneurs, tous les logiciels indispensables pour lancer et informatiser leur activité, gratuitement et librement.
Bureautique, comptabilité, gestion commerciale, gestion de projet, graphisme, multimédia… Retrouvez tous les logiciels nécessaires, documents types, guides de prise en main et tutoriels pour vous accompagner dans l’informatisation de votre entreprise.

La CCI de Montpellier vous propose donc, en partenariat avec la CCI de l’Oise, d’accéder au téléchargement d’une centaine d’outils, regroupés par thématiques, à destination de l’Entreprise.

À une heure où le développement d’internet et du haut débit favorise l’utilisation de solutions « Cloud ou Nuage » tous azimuts, l’utilisation de logiciels libres s’impose comme une évidence pour une solution indépendante et fiable pour l’Entreprise désireuse de garder ses informations stratégiques (fichiers, bases de données) en local.

Un logiciel libre est défini par la Free Software Foundation comme un logiciel offrant 4 libertés distinctes :

  • La liberté d’exécuter le programme, pour tous les usages ;
  • La liberté d’étudier le fonctionnement du programme et de l’adapter à ses besoins ;
  • La liberté de redistribuer des copies du programme (ce qui implique la possibilité de donner des copies) ;
  • La liberté d’améliorer le programme et de distribuer ces améliorations au public, pour en faire profiter toute la communauté.

Les logiciels libres contenus dans ce Pack bénéficient de la reconnaissance des acteurs du monde de l’entreprise et de l’informatique reconnus pour leur stabilité et vous assurent une sécurité accrue. Laissez-vous guider et découvrez plus de 100 logiciels libres facilement utilisables pour vous accompagner dans votre informatique au quotidien. Ou appelez les experts de Montpel’libre qui vous accompagnerons dans votre choix et peuvent vous aider à leur prise en main.

Montpel’libre se positionne d'ores et déjà pour accompagner les TPE et PME à l’utilisation des logiciels libres dans les entreprises.

Télécharger ce contenu au format Epub

Lire les commentaires

IT-edit, un éditeur de texte avec terminaux intégrés

17 avril, 2015 - 15:38

Je viens vous présenter ma dernière création, IT-Edit un éditeur de texte avec de multiples fonctionnalités. Créé avec GTK+3, gtksourceview3.0 et libvte.
IT-Edit (Integrated Terminal Editor) est un éditeur de texte avec terminaux intégrés et bien d'autres fonctionnalités pratiques.

Motivation pour l'écriture de IT-Edit

On peut diviser les programmeurs selon leur façon de travailler en deux catégories :

  1. ceux qui utilisent un IDE : un environnement de développement complet.
  2. ceux qui travaillent avec des outils séparés : un éditeur de texte, usage du terminal et autres outils.

Comme je suis un programmeur de la deuxième catégorie et comme j'ai remarqué que j’utilisais souvent un client Internet pour la doc HTML offline, j'ai décidé d'écrire mon propre éditeur de texte qui me donne un accès direct à tous les outils dont j'ai besoin.

Fonctionnalités Classiques

IT-Edit implémente un éditeur de texte avec coloration syntaxique, affichage des numéros de lignes et complétion automatique avec les fonctionnalités de base d'un éditeur de texte (couper / copier / coller ; dupliquer la sélection ou la ligne du curseur ; annuler / refaire ("undo / redo") ; aller à une ligne donnée ; recherche et remplacement) et de gestion de fichiers (sauvegarder tous les fichiers ouverts).

Terminaux

IT-Edit implémente deux terminaux dans la fenêtre principale qui sont aisément déployables, repliables et peuvent être redimensionnés. Vous pouvez y lancer une commande quelconque exécutée dans une fenêtre du plus haut niveau qui est facilement maximisable, minimisable et redimensionnable.

Note : cette fonctionnalité d'abord prévue pour la visualisation de pages de man a été étendue a toutes sortes de commandes, sans restriction.

Types de fichiers

IT-Edit implémente un mécanisme d'enregistrement de fichiers quelconques (doc HTML, PDF, PS ou musique, vidéo…) qui après enregistrement seront lançables par le programme associé au type de fichier.

Note : cette fonctionnalité était prévue pour la visualisation de documentation offline HTML qui a été étendue.

IDE

Avec ses terminaux intégrés IT-Edit vous fournit un environnement de développement, répondant à tous vos besoins.

Essayez

Prenez la peine d'essayer IT-Edit, vous allez sûrement l'adopter…

Paquetages

Le programme est distribué sous forme de paquetage *.deb, si cela ne vous convient pas, allez dans : Programmes->Accéder à l'index->C->IT-Edit, vous y trouverez une archive tarball (*.tgz) compatible Linux et BSD (non-testé). Pour installer IT-Edit tapez :

$ ./configure $ make $ sudo make install Appel à contrib

Je suis ouvert à toutes formes de critiques, si vous avez des commentaires à faire sur le code, les fonctionnalités auquelles je n'ai pas pensé, etc.

Scratch your own itch

PS : J'ai vraiment écrit ce pseudo IDE pour mes propres besoins, mais je tiens à vous en faire profiter, quand même, afin qu'il évolue selon les fondements du logiciel libre.

Télécharger ce contenu au format Epub

Lire les commentaires

G’MIC 1.6.2.0 : Colorisation de BD, transfert de couleurs, aide au détourage et autres réjouissances

17 avril, 2015 - 00:32

À l'occasion de la sortie toute récente de la version 1.6.2.0 de G'MIC (GREYC's Magic for Image Computing), framework libre pour le traitement d'image, je vous propose de poursuivre ma petite série d'articles de résumés sur les avancées de ce logiciel libre sympathique, voire indispensable aux traiteurs d'images.

Cette dépêche présente un ensemble significatif des nouveautés ajoutées à G'MIC depuis la version 1.5.9.3 présentée il y a environ 10 mois, à savoir l'apparition de nouveaux traitements liés à la couleur, l'aide au détourage avant-plan / arrière-plan, de nouveaux filtres artistiques et d'autres faits notables.

Sommaire 1. Le projet G'MIC : contexte et présentation.


Fig.1. Mascotte et logo du projet G'MIC, framework libre pour le traitement d'image.

Le projet G'MIC a vu le jour en Août 2008, dans l'équipe IMAGE du laboratoire GREYC (Unité Mixte de Recherche du CNRS, située à Caen) et évolue depuis à un rythme soutenu. Il est distribué sous licence libre CeCILL.
Il propose plusieurs interfaces utilisateurs pour la manipulation d'images génériques (images ou séquences d'images 2D ou 3D, multi-canaux, à valeurs flottantes, incluant donc les images couleurs classiques).
Son interface la plus populaire aujourd'hui est un greffon disponible pour le logiciel GIMP.


Fig.1.1. Aperçu du greffon G'MIC pour GIMP.

Mais G'MIC peut aussi s'utiliser en ligne de commande, de façon similaire à ImageMagick (pour des fonctionnalités optimales), ou directement via la page web G'MIC Online. D'autres interfaces existent (ZArt, un greffon pour Krita, des greffons pour Photoflow…) mais celles-ci restent pour le moment plus confidentielles.
Toutes ces interfaces se basent sur la bibliothèque libgmic, écrite en C++, portable, thread-safe et multi-threadée (via l'utilisation d'OpenMP notamment), qui implémente toutes les fonctions de calculs proprement dites, et qui embarque son propre langage de script permettant aux utilisateurs avancés d'y ajouter leurs fonctions personnalisées de traitement d'image. Aujourd'hui, G'MIC comprend plus de 900 commandes de traitement différentes, toutes paramètrables, pour une bibliothèque d'un peu moins de 5 Mo. Les commandes que propose G'MIC couvrent un large spectre du traitement d'image, avec des algorithmes pour la manipulation géométrique, les changements colorimétriques, le filtrage (débruitage, rehaussement de détails par méthodes spectrales, variationnelles, non-locales…), l'estimation de mouvement / le recalage, l'affichage de primitives, la détection de contours/la segmentation, le rendu d'objets 3d, le rendu artistique, etc.
C'est un ensemble d'outils très utiles, d'une part pour convertir, visualiser et explorer des données images, et d'autre part pour la construction de pipelines élaborés de traitements.
Il est entendu qu'étant le programmeur principal de ce logiciel, les avis que je vais exprimer ci-dessous sont totalement partiaux et mon enthousiasme forcément débordant.

2. Nouveaux traitements liés à la couleur.

Voici quelques unes des nouvelles commandes et filtres qui ont été ajoutés dans G'MIC récemment, et qui concernent la création ou la modification de couleurs dans des images.

Application de courbes dans des espaces couleurs quelconques.

Le concept de courbes de couleurs est bien connu des artistes et photographes désirant retoucher les couleurs de leurs images. Basiquement, un outil de courbes de couleur permet d'appliquer à chaque composante R,G,B d'une image, une fonction 1d continue f:[0,255] -> [0,255] qui va transformer chaque valeur rouge, verte ou bleue x de chaque pixel (supposée initialement comprise entre 0 et 255) en la valeur f(x) donnée par la courbe (fonction) définie par l'utilisateur (et dont les valeurs sont également comprises entre 0 et 255). Très souvent, ces fonctions sont construites par l'utilisateur, par la donnée de quelques points clés interpolés par des splines.

Mais que se passe-t-il si l'on veut appliquer une fonction de transformation des composantes couleurs dans un espace colorimétrique autre que RGB ? Et bien, on se brosse… Parce que la plupart des logiciels de retouche d'image ne permettent que l'application de courbes couleurs dans l'espace RGB.

Depuis peu, j'ai donc intégré dans G'MIC un outil de réglage de courbes couleurs dans des espaces colorimétriques autres que RGB, à savoir : CMY, CMYK, HSI, HSL, HSV, Lab, LCh ou YCbCr. C'est la commande -x_color_curves qui s'occupe de cette tâche (en ligne de commande), ou le filtre Colors / Curves [interactive] dans le greffon G'MIC pour GIMP. Un exemple d'utilisation est visible dans la figure ci-dessous (ici avec des courbes définies dans l'espace Lab). Un tutoriel vidéo d'utilisation de ce filtre dans le greffon est également disponible. L'utilisation du filtre dans le greffon permet, par ailleurs, de sauver ses courbes favorites pour une application ultérieure sur un lot d'images par exemple.


Fig.2.1. Définition interactive de courbes de couleurs dans l'espace colorimétrique Lab et application sur une image couleur. À gauche, les courbes définies par l'utilisateur pour les 3 composantes L (clarté), a et b (chrominances). À droite, le résultat de la transformation colorimétrique correspondante.

Colorisation de BD / Comics.

C'est en discutant avec David Revoy, illustrateur français de talent, et auteur entre autres du webcomics Pepper & Carrot (dont les moules de LinuxFr.org ont parlé dans ce journal, ou encore celui-ci), qu'a germé l'idée d'un filtre qui pourrait aider les dessinateurs de BD à coloriser leurs images. Le travail de colorisation d'une BD est en effet quelque chose de long et de contraignant, même sur ordinateur, comme l'explique David Revoy sur son blog.
Il existe déjà des outils d'aide à la colorisation, mais ceux-ci sont fermés, et il y avait donc un manque de ce côté-là pour les utilisateurs de logiciels libres.

J'ai donc pris mon courage (plutôt mon clavier) à deux mains, et j'ai implémenté dans G'MIC un filtre d'interpolation de couleurs « intelligent » (toute mesure gardée) qui essaye de générer un calque complet de couleurs, à partir seulement d'un nuage de points colorés. L'idée est de demander à l'illustrateur de positionner seulement quelques points-clés colorés sur son image (par exemple à l'intérieur des différentes zones), et de laisser l'algorithme en déduire une colorisation probable de tout le dessin (en analysant les contours et les objets qu'il contient). Avec David Revoy et Timothée Giet nous avons échangé via irc sur la façon d'avoir une interface de colorisation la plus intuitive possible, et le résultat, c'est une nouvelle commande G'MIC -x_colorize (utilisable en ligne de commande) et le filtre correspondant Black & White / Colorize [interactive] pour le greffon G'MIC de GIMP . Et apparemment, ça ne marche pas trop mal !

Il semblerait même que cet unique algorithme ait suffisamment intéressé les utilisateurs de Krita pour qu'il motive les développeurs à retravailler sur leur propre greffon G'MIC pour Krita pour inclure cet algorithme dedans.
Depuis, David Revoy a utilisé cet algorithme régulièrement pour ses créations (notamment pour Pepper & Carrot). Ci-dessous, vous pouvez voir un exemple d'une phase de colorisation d'une case de BD de Pepper & Carrot initialement en niveau de gris, avec l'ajout des points-clés colorés et le résultat de la colorisation réalisée par l'algorithme de G'MIC (tout ceci réalisé avec le greffon sous Krita).
Sur son site, David a posté des vidéos détaillant tout le processus de colorisation qu'il utilise, et dont G'MIC fait maintenant partie.


Fig.2.2. Utilisation de G'MIC pour la colorisation de BD : Étape 1, ouverture du dessin à coloriser, ici sous Krita.
(Cette image provient du site web de David Revoy : http://www.davidrevoy.com/article240/gmic-line-art-colorization)


Fig.2.3. Utilisation de G'MIC pour la colorisation de BD. Étape 2, mise en place de quelques points-clés couleurs et colorisation automatique obtenue par G'MIC.
(Cette image provient du site web de David Revoy : http://www.davidrevoy.com/article240/gmic-line-art-colorization)

Après cette première étape de colorisation automatique, l'artiste peut ajouter à sa guise ombres et lumières sur les aplats couleurs générés, pour finaliser son œuvre. À noter que cette dernière étape est facilitée car chaque couleur est, de fait, facilement sélectionnable de manière séparée sur le calque couleur généré par l'algorithme. Et, pour ceux qui préfèrent travailler sur des calques de couleurs séparés plutôt que sur des sélections, le filtre de colorisation propose aussi la possibilité de générer N calques couleurs de sortie, chacun contenant une couleur unique.

Encore un grand merci donc à David Revoy et Timothée Giet pour leurs retours enthousiastes et pédagogiques, nous disposons donc maintenant d'un outil de colorisation de BDs libre que mon dentier nous envie :)
Voilà un exemple de collaboration entre recherche académique et artistes "libres" qui a porté ses fruits.

Colorisation de photographies Noir & Blanc.

Mais ce qu'on peut faire avec des BDs, peut-on le faire avec de vieilles photographies en noir et blanc, me demanderez-vous ? Hé bien oui ! En modifiant légèrement l'algorithme, nous pouvons de la même manière reconstruire la chrominance d'une photographie initialement en niveaux de gris, pour la coloriser à partir de points-clés couleurs définis par l'utilisateur. C'est ce qu'illustre l'exemple ci-dessous, avec la colorisation d'une vieille photo d'indien. À noter que le contenu de l'image étant sensiblement plus complexe qu'une case de BD, il est souvent nécessaire de placer beaucoup plus de points-clés pour coloriser une photographie. C'est le même filtre que précédemment, à savoir Black & white / Colorize [interactive] dans le greffon G'MIC pour GIMP, qui permet cela.


Fig.2.4. Colorisation d'une vieille photo Noir & Blanc avec l'algorithme de colorisation de G'MIC. (Ugh, vieil indien, excuse-moi pour la couleur improbable de tes cheveux, qui te fait ressembler à Kim Kardashian…)

Transfert de couleurs.

Ici, le concept de « transfert de couleurs » correspond au fait de vouloir modifier les couleurs d'une image A en les remplaçant par les couleurs présentes dans une autre image B (l'image de référence), de telle sorte que l'image modifiée A' ait la même « ambiance colorimétrique » que l'image référence B, et ceci bien évidemment, de manière complètement automatique.
C'est un problème mal posé, complexe à résoudre, et il y a déjà pas mal d'articles de recherche parus à ce sujet (ce papier par exemple). La difficulté c'est d'arriver à générer une image A' en gardant un aspect « naturel », sans création d'aplats de couleurs ou au contraire sans apparition de discontinuités qui ne seraient pas présents initialement dans l'image A originale. Bref, ce n'est pas trivial.

Récemment, un algorithme de transfert de couleurs a été implémenté et intégré dans G'MIC, et il fonctionne de façon plutôt satisfaisante. Ce n'est pas parfait, certes, mais c'est un bon début. Le filtre Colors / Transfer colors [advanced] du greffon G'MIC pour GIMP permet d'appliquer facilement cet algorithme de transfert. C'est un filtre qui nécessite plusieurs calques d'entrée, dont un calque contenant l'image avec les couleurs de référence à transférer sur les images des autres calques. Voici comment cela se présente dans le greffon. On y voit l'image originale (à gauche dans la fenêtre de prévisualisation), l'image contenant les couleurs de référence (en bas à gauche), et l'image résultat (à droite).


Fig.2.5. Aperçu du filtre de transfert de couleurs dans le greffon G'MIC pour GIMP.

Ce filtre réalise parfois des merveilles avec certaines paires d'images ! Deux exemples de transfert sont illustrés sur la figure ci-dessous. Bien sûr n'espérez pas de résultats miraculeux avec des cas pathologiques (transfert d'une image avec plein de couleurs sur une image monochrome par exemple) ! Mais globalement, ça fonctionne pas mal.


Fig.2.6. Deux exemples de résultats de transfert de couleurs d'une photo de référence (image du milieu) vers une photo source (image de gauche). Les images de droite sont les résultats générés par l'algorithme de transfert de G'MIC.

Il existe également un tutoriel vidéo qui illustre comment faire fonctionner ce filtre dans le greffon G'MIC pour GIMP.
On peut également penser à d'autres applications plus « subtiles » de ce filtre, par exemple pour l'homogénéisation de couleurs entre les frames ou les plans successifs d'une même vidéo, ou d'une paire d'images stéréoscopiques, par exemple.

Simulation de films argentiques.

Pat David est un photographe amateur américain très actif dans la communauté du logiciel libre orienté photographie, de par ses tutoriels et son expérience qu'il partage sur son blog. J'ai eu la chance d'interagir avec lui à de nombreuses occasions (dont une rencontre en live à LGM'2014 à Leipzig), et cela a donné naissance à pas mal de filtres différents implémentés dans G'MIC. En particulier, nous avons proposé des filtres de simulation de films argentiques, comme ceux présentés ci-dessous. C'est seulement un petit échantillon des plus de 300 transformations couleurs qui ont été concoctées par Patrick et que nous avons rendu facilement accessibles.


Fig.2.7. Aperçu de quelques résultats de simulation de films argentiques, disponibles dans G'MIC.
(Cette image provient du site web de Pat David : http://blog.patdavid.net/2013/08/film-emulation-presets-in-gmic-gimp.html)

Ces filtres ont assez vite suscité un certain intérêt dans la communauté libre de retouche photo, et ont par la suite été repris et ré-implémentés dans le logiciel RawTherapee.
Pour rendre ces filtres encore plus visibles, une page web dédiée a été mise au point, qui recense l'ensemble des transformations couleurs proposées et propose de télécharger les CLUTs (fonctions de transfert) utilisées pour chaque transformation. À noter que vous pouvez retrouver ces filtres également sur G'MIC Online pour les tester directement sur vos propres images, directement via votre navigateur web.
Là encore, c'est une fonctionalité qui manquait dans le logiciel libre (une sorte d'équivalent du logiciel propriétaire DXO FilmPack), et qui a pu être comblée assez rapidement via l'infrastructure proposée par G'MIC.

3. Aide à la décomposition avant-plan / arrière-plan.

Quand on fait de la retouche photo, il est assez courant que l'on veuille traiter de manière séparée les objets présents à l'avant-plan et dans le fond. Pour cela, on a souvent besoin de faire une décomposition d'image en avant-plan/arrière plan, en effectuant un détourage (avec l'outil de sélection "lasso" par exemple). Pour des objets un peu complexes, réaliser cette sélection est quelque chose de fastidieux. G'MIC incorpore maintenant un filtre permettant d'accélérer ce travail de découpe des objets. C'est la commande -x_segment (en ligne de commande) ou le filtre Contours / Extract foreground [interactive] du greffon G'MIC pour GIMP qui permet de réaliser cette tâche.

Le principe est exactement le même que pour le filtre de colorisation présenté précédemment : L'utilisateur place des points-clés, ayant pour label soit « avant-plan », soit « arrière-plan », et l'algorithme interpole ces labels en prenant en compte les contours présents dans l'image, et en déduit ainsi une carte binaire de détourage. Le filtre décompose ensuite l'image en deux calques distincts, un calque contenant les points d'avant-plan uniquement, et un autre avec les points d'arrière-plan. La figure ci-dessous présente un exemple de détourage effectué en utilisant ce filtre : L'utilisateur place quelques points-clés sur une image originale d'une fleur (image en haut à gauche). Les points verts correspondent aux objets d'avant-plan, tandis que les rouges sont placés dans le fond (image en haut à droite). À partir de ces données très éparses, et de l'analyse des contours de l'image, le filtre détermine automatiquement pour chaque pixel son appartenance au calque d'arrière-plan (image en bas à gauche) ou d'avant-plan (image en bas à droite).
Effectuer ce détourage ne prend ici que quelques secondes, alors que la même opération effectuée manuellement serait beaucoup plus longue (le contour de la fleur n'ayant pas une forme simple). Un tutoriel vidéo illustrant l'utilisation de ce filtre dans le greffon G'MIC pour GIMP est disponible.


Fig.3.1. Décomposition avant-plan / arrière plan avec le filtre « Contours / Extract foreground » de G'MIC.

Cette décomposition de l'image d'origine permet par la suite d'appliquer des traitements différenciés sur l'avant-plan et sur l'arrière-plan. Par exemple ci-dessous nous modifions la teinte et la saturation du calque d'avant-plan uniquement, pour jouer sur la couleur de la fleur, sans modifier la couleur de l'arrière-plan. Le détourage d'objet étant un besoin très fréquent en retouche photo, je vous laisse imaginer le nombre d'utilisations possibles de ce filtre.


Fig.3.2. Après modification de la teinte et de la saturation des couleurs de l'avant-plan uniquement.

4. Nouveaux filtres artistiques.

G'MIC, c'est aussi tout une floppée de filtres amusants pour créer des effets artistiques sur vos images. En voici quelques-uns notables qui ont été ajoutés dernièrement.

Effet gravure.

Le filtre Black & White / Engrave tente de transformer une image en gravure. Le nombre relativement élevé de paramètres permet d'obtenir beaucoup de contrôle sur le type de rendu obtenu.


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

Là où ce filtre est particulièrement intéressant, c'est qu'il permet (en choisissant des paramètres adaptés) de transformer une image en version Comics, comme illustré avec les deux exemples ci-dessous. Un tutoriel vidéo existe également pour montrer les différentes étapes nécessaires à l'obtention de ce type de résultats, qui ne prend au final que quelques secondes (minutes pour les plus lents).


Fig.4.2. Conversion de photo (en haut à gauche) sous forme de dessin façon Comics, avec le filtre "Engrave" de G'MIC.


Fig.4.3. Conversion d'une photo de chimpanzé (à gauche) sous forme de dessin façon Comics (à droite), avec le filtre "Engrave" de G'MIC.

Triangulation de Delaunay.

Un algorithme de calcul de la triangulation de Delaunay 2D/3D a été ajoutée à G'MIC (commande -delaunay3d), et le filtre Artistic / Polygonize [delaunay] du greffon GIMP l'utilise pour transformer une image sous la forme d'ensemble de triangles de Delaunay, qui s'adaptent plus ou moins aux contours de l'image. Chaque triangle généré peut prendre une couleur, soit aléatoire, soit constante, soit liée aux pixels de l'image qui appartiennent au triangle.
C'est un filtre permettant de créer des abstractions géométriques intéressantes.


Fig.4.4. Aperçu du filtre "Polygone [delaunay]" et application sur une image pour un rendu de type "vitrail".

C'est un filtre qui donne également des choses sympathiques sur des séquences d'images. Je me demande si l'importation de ces images triangulées sous Blender n'aurait pas un intérêt (et même plus loin, carrément un greffon G'MIC pour Blender ?).


Fig.4.5. Application de la triangulation de Delaunay sur une séquence d'images.

Autres filtres artistiques, en vrac.

Comme vous le voyez, G'MIC est un projet assez actif et le nombre de filtres disponibles (notamment artistiques) augmente de manière assez régulière. On ne peut donc pas décrire en détails tous les ajouts de ces dix derniers mois, et comme quelques images valent mieux qu'un long discours, voici un aperçu rapide de quelques-uns de ces filtres, présenté dans les figures ci-dessous.


Fig.4.6. Aperçu du filtre "Arrays & Tiles / Grid [hexagonal]", potentiellement utile pour les créateurs de cartes des jeux de type Wargames ?


Fig.4.7. Aperçu du filtre "Patterns / Crystal" qui transforme vos images en cristaux multicolores.


Fig.4.8. Aperçu du filtre "Rendering / Lightning" qui dessine un éclair dans une image.


Fig.4.9. Aperçu du filtre "Arrays & Tiles / Ministeck" qui transforme vos images en représentation de type Ministeck (jeu pour enfants).


Fig.4.10. Aperçu du filtre "Sequences / Spatial transition", qui prend en entrée plusieurs calques et qui génère une séquence d'images de transition entre chaque calque consécutif, avec des motifs de transition réglables.

5. Autres faits notables.

Bien sûr, les quelques filtres présentés ci-dessus ne constituent qu'une toute petite partie (la plus visible) du travail effectué sur le code du projet G'MIC durant ces derniers mois. Voici en vrac, les autres aspects (plus techniques) du logiciel qui ont été améliorés.

Améliorations globales et bibliothèque libgmic
  • Énormément d'efforts ont été faits pour le nettoyage et l'optimisation du code : la taille de la bibliothèque libgmic a pu être réduite drastiquement (moins de 5 Mo actuellement), avec une API améliorée. L'utilisation de quelques fonctionnalités du C++11 (rvalue-references) permet d'éviter les copies intempestives de buffers temporaires, ce qui est vraiment appréciable dans le cas du traitement d'image où la mémoire allouée devient vite importante. Avec l'aide de Lukas Tvrdy développeur de Krita, nous avons pu améliorer la compilation du projet sous Visual Studio (Windows), appliquer des analyseurs statiques de code (PVS Studio), empiler des sessions de valgrind / gprof / g++ avec l'option -fsanitize=address pour obtenir un code plus propre et plus efficace. Pas vraiment drôle pour les développeurs, mais au final très satisfaisant pour l'utilisateur ! La conséquence directe de ce processus est de pouvoir proposer des versions pre-release intermédiaires qui restent stables tout en incorporant les dernières nouveautés ajoutées. La méthode de distribution de G'MIC se rapproche ainsi d'une méthode rolling-release.

  • La compilation du projet sous Windows a été également améliorée, avec l'utilisation de g++-4.9.2 / MinGW comme compilateur par défaut pour la génération des binaires, et la création d'installeurs pour les architectures 32 bits et 64 bits.

  • G'MIC possède de nouvelles commandes pour compresser/décompresser des données quelconques à la volée (via l'utilisation de la zlib). De cette façon, nous avons pu réduire la taille des définitions de commandes, des exécutables, et accélérer le processus de mise à jour des filtres via Internet.

  • Le projet G'MIC possède maintenant son propre nom de domaine http://gmic.eu, indépendant de SourceForge, son ancien hébergeur. Nous avons enrichi le contenu des pages web, grâce notamment à de très bons tutoriels sur l'utilisation de l'outil gmic en ligne de commande (écrits par Garry Osgood, un grand merci à lui !). Une page à retenir pour tous ceux qui voudraient se mettre à G'MIC en douceur.

Quelques nouveautés pour le filtrage d’images.

Pas mal de nouvelles commandes dédiées au filtrage d'image, et leurs entrées associées dans le greffon G'MIC pour GIMP ont été ajoutées : en vrac, des algorithmes de sharpening ("Mighty Details"), de déconvolution par noyau arbitraire (algorithme de Richardson-Lucy), de filtrage guidé rapide, de Non-Local-Means rapide, de régularisation type Perona-Malik, de filtrage rapide à support fini, de DCT (et son inverse) sont maintenant disponibles.
G'MIC possède aujourd'hui une foultitude d'opérateurs pour le filtrage linéaire et non-linéare d'image, qui en fait un logiciel libre à posséder absolument pour les traiteurs d'image de tout poil (ne serait-ce pour les méthodes de débruitage qu'il propose). Pour les utilisateurs du greffon, cela signifie potentiellement des filtres encore plus riches dans le futur. Ci-dessous, un aperçu d'application du filtre Details / Mighty details sur une image de portrait, à partir du greffon pour GIMP, pour un effet de type Dragan.


Fig.5.1 Application du filtre « Mighty Details » sur un portrait pour le rehaussement de détails.

Amélioration du greffon G'MIC pour GIMP.

Le greffon G'MIC pour GIMP étant l'interface de G'MIC la plus utilisée à ce jour, il était important de lui apporter son lot d'améliorations :

  • Le greffon possède maintenant un système de mise à jour automatique qui permet d'avoir une liste de filtres avec toutes les dernières améliorations/nouveautés. Au jour de la sortie de la version 1.6.2.0, le greffon possède 430 filtres différents à appliquer sur vos images, auxquels s'ajoutent 209 filtres qui sont considérés comme étant en phase de test (Catégorie Testing/). Pour un greffon de 5,5 Mo, on peut considérer que ça fait un bon rapport nombre de filtres / mémoire occupée ! Une liste de l'ensemble des filtres disponibles dans le greffon est visible ici.

  • Lors de l'exécution d'un filtre un peu gourmand en temps de calcul, le greffon affiche maintenant quelques informations sur le temps écoulé et l'utilisation mémoire du filtre dans la barre de progression correspondante.


Fig.5.2. Affichage des ressources prises par un filtre dans le greffon G'MIC pour GIMP.

  • L'interface du greffon a été améliorée : la fenêtre de pré-visualisation est plus précise dans le cas des filtres prenant plusieurs calques en entrées. Les filtres peuvent être maintenant interactifs : ils peuvent ouvrir leur propre fenêtre de visualisation et gérer des évènements provenant de l'utilisateur. Un filtre peut également décider de modifier l'interface de ses paramètres. Tout ceci nous a permis de proposer de nouveaux filtres interactifs intéressants, comme celui pour la colorisation de BDs, pour le réglage des courbes couleurs, ou encore pour l'extraction d'objets (décrits plus haut), qu'il n'était pas possible de réaliser dans le greffon pour GIMP précédemment (ça n'était possible qu'avec l'outil gmic en ligne de commande).

  • Les filtres du greffon ont maintenant connaissance des informations de base des calques d'entrées (label, position, opacité, mode de mixage), et peuvent modifier ces informations sur les calques de sortie.

  • Un nouveau filtre About / User satisfaction survey a été ajouté, permettant aux utilisateurs de donner quelques informations sur leur utilisation de G'MIC. Le résultat de ce sondage est visible en temps réel ici. Bien sûr, cette image est elle-même générée par une commande G'MIC :).

Débrider G'MIC : utilisation en ligne de commande.

gmic est l'interface « ligne de commande » de G'MIC, qui s'utilise à partir d'un shell. C'est l'interface la plus puissante de G'MIC, sans limitations inhérentes aux contraintes d'entrées-sorties des autres interfaces (par exemple, images 2D à 8bits/canal et 4 canaux maximum sous GIMP, une seule image d'entrée 2D avec G'MIC Online, etc.). Ici, on peut charger/sauver et manipuler des séquences d'images 3D multi-canaux à valeurs flottantes sans limites (autres que la mémoire disponible). L'interface ligne de commande a également connu son lot d'améliorations.

  • OpenCV est maintenant utilisé par défaut pour charger/sauver des séquences d'images. On peut donc appliquer des traitements frame par frame sur des vidéos (commande -apply_video), des streamings de la webcam (command -apply_camera), ou générer des fichiers vidéos à partir d'images fixes par exemple. De nouvelles commandes -video2files et -files2video pour décomposer des fichiers vidéos en plusieurs frames ou les recomposer ont été ajoutées. Le traitement de fichiers vidéos devient maintenant (presque) un jeu d'enfant avec G'MIC en ligne de commande ! L'aide (commande -h) a également été améliorée, avec une sortie en couleur, des corrections proposées en cas d'erreur de frappe sur une commande, des liens éventuels vers des tutoriels, etc.


Fig.5.3. Aperçu du fonctionnement de l'aide en ligne de commande.

  • L'appel à gmic sans arguments en ligne de commande active maintenant un mode démo où l'on peut sélectionner différentes petites animations interactives à partir d'un menu, pour voir ce que G'MIC a dans le ventre ! Une bonne occasion pour jouer à Pacman, Tetris ou au démineur en prétextant le fait de tester un logiciel de traitement d'images sérieux !


Fig.5.4. Aperçu de G'MIC, lancé en mode démo !

Autres interfaces G’MIC en cours de développement.
  • ZArt est une interface de G'MIC initialement développée comme plateforme de démonstration pour le traitement des images provenant d'une webcam. Nous l'utilisons classiquement lors de la Fête de la Science, pour illustrer ce que peuvent réaliser des algorithmes de traitement, pour le grand public. ZArt s'est enrichi significativement, d'une part en permettant d'importer des fichiers vidéos quelconques, et d'autre part, en proposant quasiment l'ensemble des filtres du greffon G'MIC pour GIMP. Cette vidéo illustre ces nouvelles possibilités, avec par exemple la simulation de films photo argentiques sur une vidéo en temps réel. Il pourrait vraiment être très intéressant de disposer d'un greffon G'MIC pour des logiciels d'effets vidéos, comme le tout nouveau Natron par exemple. On a déjà des contacts avec eux, donc on peut espérer que ça puisse se faire dans un futur plus ou moins proche. À noter que ZArt est également passé sans douleur de Qt 4 à Qt 5.


Fig.5.5. Aperçu du logiciel ZArt traitant une vidéo en temps réel.

  • Depuis quelques temps, Lukas Tvrdy membre de l'équipe de développement du logiciel Krita a commencé à développer un greffon G'MIC pour Krita. Ce greffon est prometteur, il reprend l'ensemble des éléments du greffon déjà disponible pour GIMP, et il fonctionne déjà bien sous GNU/Linux. On travaille ensemble pour régler les quelques problèmes qui subsistent sous Windows. L'utilisation du greffon sous Krita est intéressante car il génère des résultats à 16 bits par composante, voire plus encore (flottants 32 bits), alors que le greffon pour GIMP est pour le moment limité à 8 bits par composante pour les entrées-sorties. C'est quelque chose qui pourrait changer dans le futur avec l'utilisation de GEGL, mais le manque de documentation actuel sur GEGL est un frein au support du 16 bits par composante dans le greffon G'MIC pour GIMP. Donc pour le moment, appliquer des traitements G'MIC sur des images en 16 bits par composantes ou plus nécessite l'utilisation de la ligne de commande ou du greffon Krita.


Fig.5.6. Aperçu du greffon G'MIC pour Krita en action.
(Cette image provient du site web de Krita : https://krita.org/wp-content/uploads/2014/11/gmic-preview.png)

  • L'intégration de certains traitements de G'MIC dans Photoflow est également en cours. PhotoFlow est un logiciel libre très récent et prometteur qui se focalise sur le développement d'images RAW en JPEG, ainsi que sur la retouche photo.


Fig.5.7. Aperçu du filtre "Dream Smoothing" de G'MIC inclus dans PhotoFlow.
(Cette image provient du site web de PhotoFlow : http://photoflowblog.blogspot.fr/2014/12/news-gmic-dream-smoothing-filter-added.html)

6. Perspectives et conclusions.

Voilà ! Le tour des nouveautés notables de ces dix derniers mois est terminé. À noter que tout ceci a été rendu possible grâce aux différents contributeurs (programmeurs, artistes, et utilisateurs en général) de plus en plus nombreux, donc merci à eux.
Dans le futur, on rêve de toujours plus d'intégration de la libgmic dans d'autres logiciels libres. Un greffon pour Natron serait idéal pour qu'on explore un peu plus les possibilités de traitement de vidéos avec G'MIC. Un greffon pour Blender serait pas mal aussi d'ailleurs ! Un noeud pour GEGL serait intéressant également, pour le prochain GIMP 3.0 (mais bon, on a encore probablement une bonne dizaine d'années pour se décider avant que ça sorte :)).
Bref, on cherche toujours des contributeurs compétents et intéressés pour explorer ces différentes pistes (et les autres qu'on ne connait pas encore), et on risque de pas s'ennuyer avec G'MIC dans les prochaines années.

Sur ce, j'y retourne, et je vous donne rendez-vous dans quelques mois pour des nouvelles fraîches du projet GMIC !

Télécharger ce contenu au format Epub

Lire les commentaires

Toutou Linux 6.0 SlaXen RCX

16 avril, 2015 - 10:05

Jean-Jacques Moulinier publie une nouvelle version de Toutou Linux, basée sur Slacko 6.0, nommée SlaXen RCX, adaptée aux machines récentes. Elle peut aussi faire le bonheur d'anciens PC, avec au moins 256 Mo de RAM et un fichier d'échange de 512 Mo.

Toutou Linux est une distribution Linux rapide, facile à installer, à utiliser et très intuitive. Toutou Linux est basée sur Puppy linux, créée par Barry Kauler. Toutou Linux est un système d'exploitation accompagné d'une suite logicielle complète pour une utilisation familiale.

Les avantages de Toutou Linux
  • Installation facile sur disque dur, clé USB ou Zip.
  • Démarrage à partir du CD (ou DVD), le lecteur de CD est alors libre pour d'autres utilisations.
  • Démarrant du CD (ou DVD), vous sauvegardez tout ce que vous voulez sur le CD (ou DVD).
  • Démarrant à partir d'une clé USB, Toutou minimise les écritures pour augmenter leur durée de vie.
  • Extrêmement intuitif pour les débutants Linux.
  • Démarrage et lancement extraordinairement rapide.
  • Possède toutes les applications nécessaires pour une utilisation quotidienne.
Toutou Linux pour les ordinosaures

La version 4.3.1 (publiée en février 2010), produite par Jean-Jacques Moulinier, est celle qu'il a utilisée au quotidien durant cinq années sur un vieil ordinateur de 2001.

Il vient d'en publier une mise à jour importante, la 4.3.6 destinée aux ordinosaures. Les anciennes versions sont disponibles dans le dépôt d'ASRI éducation.

SlaXen 6.0 est une distribution légère et rapide

Elle possède tous les programmes pour une utilisation familiale quotidienne : navigation Internet, écriture et lecture des courriels, rédaction et impression de textes, calculs, comptes personnels, écoute de musique et/ou radios du web, regarder des films, faire des montages audio ou vidéo, etc.

Openbox pour le bureau

Le gestionnaire des fenêtres Openbox 3.5.2 associé à Lxpanel 0.6.1, vous accueille sur le bureau.

Vous y retrouverez les icônes de lancement d'applications ou d'utilitaires, avec en supplément, une barre verticale, sur le côté gauche, permettant de lancer des programmes quand une application est ouverte en plein écran.

Pour les petits écrans, vous pourrez configurer de masquer ou non cette barre. Et pour ceux qui le souhaitent, afficher un bureau vierge d'icônes.

Choisissez votre navigateur

Dès le démarrage, vous avez le choix d'installer un ou plusieurs navigateurs parmi six. Vous pouvez aussi installer le greffon Flash en un clic pour lire certaines vidéos.

Plus de trente applications disponibles

Vous retrouverez bien évidemment toutes les applications utiles pour une utilisation normale, des nouveautés ou des mises à jour : mtPaint 3.44.90, Foxit reader 1.1, Abiword 3.0, Gnumeric 1.10.0.

Dès l'accès au bureau, vous pouvez installer des programmes supplémentaires d'un clic de souris, sous la forme de paquets PET, ou sous la forme de fichiers SFS (pour certains) après enregistrement de votre session.

32 applications (en ordre alphabétique), au choix, à installer d'un clic par l'utilitaire de téléchargement et d'installation de SlaXen et disponibles sur le site de Toutou :

  1. Amaya (éditeur html),
  2. Amule (client p2p),
  3. Audacious (lecteur audio),
  4. Audacity (manipulation de données audio numériques),
  5. Avidemux (éditeur vidéo performant),
  6. Bluefish (éditeur de texte destiné à la programmation),
  7. Clementine (lecteur audio - mon préféré),
  8. Cinelerra (logiciel libre de montage vidéo sophistiqué),
  9. Deadbeef (lecteur audio), Firefox (navigateur Internet),
  10. Fotoxx (éditeur d'images),
  11. FreeOffice (suite bureautique non libre mais gratuite),
  12. Gimp (création graphique et retouche photo),
  13. Grisbi (gestion de comptabilité personnelle),
  14. Gtkyoutubeviewer (visionneur de vidéos Youtube),
  15. Guvcview ( logiciel de capture par webcam),
  16. Homebank (gestion de comptabilité personnelle),
  17. Lazpaint (éditeur d'images), LibreOffice (suite bureautique libre),
  18. Ohmigéné (logiciel de généalogie),
  19. OOlight (suite bureautique libre allégée),
  20. Opera (navigateur Internet),
  21. Palemoon (navigateur Internet),
  22. Pidgin (client de messagerie instantanée multiprotocole),
  23. Polices de Libreoffice (les polices d'écriture pour Libre office et OOlight),
  24. Qupzilla et libqtWebkit (navigateur Internet),
  25. Seamonkey (suite Internet),
  26. Skype (outil phare de visioconférence),
  27. Slimboat (navigateur Internet),
  28. Songbird (lecteur audio),
  29. VLC (lecteur multimédia),
  30. Viewnior (visionneur d'images),
  31. XnView (gestionnaire de fichiers graphiques multiformats).
Une série d'utilitaires pratiques de rcrsn51
  • PeasyGlue, PeasyScale, Peasyscan, Yassm 2.6, peasyport 2.0.
  • Compression (de Don570), un utilitaire pour compresser rapidement des dossiers.
  • Frisbee 2.6 (connexion réseau avec ou sans fil)
  • Rapidradio une interface simple pour écouter quelques radios du Web.
Un nouveau dépôt sur Sourceforge

Un nouveau dépôt sur Sourceforge (Toutoulinux) a été mis en place.

Télécharger ce contenu au format Epub

Lire les commentaires

La DjangoCong 2015 débarque dans les terres du millieu

15 avril, 2015 - 23:38

L'événement annuel regroupant les amateurs francophones de Django — aka la #djangocong — aura lieu cette année dans les terres du milieu du 8 au 10 mai 2015. Clermont'ech est fière d'accueillir et de co-organiser cette réunion de poneys fougueux.

 

Programme

Une fois n'est pas coutume, la prochaine édition de la djangocong, se déroulera sur 3 jours. En voici le programme.

Vendredi 8 mai 2015 : atelier

Nous profitons d'avoir un jour férié avant la cong' pour organiser un atelier d'initiation au framework web Django. Avoir des connaissances en Python n'est pas requis. Au contraire, faire venir les curieux dont Python n'est pas le langage de prédilection est aussi une des raisons d'être de cet atelier !

En parallèle, pour celles et ceux qui connaissent déjà Django, nous organisons un atelier autour de Django REST Framework.

Le jour J, venez avec un ordinateur portable. Le matin, nous vous présenterons le framework et l'après-midi il sera temps de passer aux travaux pratiques pour réaliser votre première application web ou votre première API REST avec Django.

Notez bien, que vous pouvez aussi passer nous voir pour nous poser des questions autour du framework et de son utilisation.

Samedi 9 mai 2015 : conférences & repas communautaire

Le programme complet des conférences est disponible sur le site de la conférence

Le soir, nous serons de sortie dans le centre de Clermont pour déguster quelques plats typiques de la région Auvergne.

Dimanche 10 mai 2015 : hiking

La région Auvergne étant particulièrement épanouissante pour des poneys en mal de grands espaces, nous avons décidé de faire une randonnée familiale autour du Lac du Guéry.

Nous nous donnerons rendez-vous dimanche matin à 10h dans le centre de Clermont pour un voyage en bus vers le plus haut lac d'Auvergne. Après une promenade de 2h et un pique-nique dans les hauteurs, nous prévoyons deux sessions de retour vers le centre de Clermont pour nous adapter à votre heure de départ de la plus belle région de France, un Saint-Nectaire sous le coude.

Cette promenade sera ouverte à des accompagnateurs dans la limite des places disponibles et après inscription (si le pique-nique ainsi que le transport doivent être prévus pour ces derniers).

Inscription

Que vous souhaitiez participer uniquement à l'atelier du vendredi ou venir nous voir sur 3 jours, vous pouvez vous inscrire sur le site de l'événement

Télécharger ce contenu au format Epub

Lire les commentaires

Ubuntu Party Paris mai 2015 - appel à conférence

15 avril, 2015 - 21:43

L'association Ubuntu-fr est heureuse de vous annoncer que la prochaine édition de l'Ubuntu Party Paris se déroulera les samedi 30 et dimanche 31 mai 2015, toujours au Carrefour Numérique de la Cité des Sciences et de
l'Industrie à Paris 20e
.

Les Ubuntu Party Paris sont un cycle de conférences, d’ateliers, de démonstrations, ainsi qu'une install-party autour de la distribution GNU/Linux Ubuntu, du Libre et de ses usages. Avec son espace pour découvrir notre système d'exploitation et ses logiciels, des stands associatifs, il y a de quoi passer un bon moment dans une ambiance conviviale et non commerciale.

Si vous souhaitez y donner une conférence, un cours ou un atelier, vous êtes le ou la bienvenu(e).

Délais : les soumissions sont ouvertes jusqu’au 29 avril 2015. Elles sont étudiées par les organisateurs et feront l’objet d’une validation communiquée dans les plus brefs délais.

Durée : les conférences durent entre 20 minutes et 1 heure. Pour les ateliers et les cours, la durée est à décider avec les organisateurs

Matériel : vous disposerez d’un vidéo-projecteur, de prises de courant (220V) et d’un accès Internet (Wifi).

Format de soumission :

  • thème pour lequel vous proposez votre présentation
  • titre de l’exposé, si possible, indiquer le type de public
  • résumé de votre présentation, permettant de juger de son contenu
  • éventuel lien vers vos réalisations passées
  • durées « idéales » minimum et maximum

Pour soumettre votre conférence, merci de remplir le formulaire et vous inscrire sur la liste de discussion (également accessible via web). Vous pouvez y poser vos questions ainsi que sur le salon IRC #ubuntu-fr-party sur irc.freenode.net .

Supports d'intervention :
Des versions numériques des exposés et autres matériaux utiles seront demandées en vue de leur mise en ligne. Elles participent à la constitution d’archives très utiles à toute la communauté. Le format de ces documents doit être dans un format ouvert et le contenu placé sous licence libre.

Captation vidéo :
Des captations vidéo de vos interventions pourront être effectuées et archivées plus tard. Merci d’indiquer si vous acceptez ces captations.

Nous vous prions de diffuser cet appel le plus largement et espérons vous voir lors de cet événement.

L'équipe d'organisation d'Ubuntu-fr

Télécharger ce contenu au format Epub

Lire les commentaires

Version 5.1 de Pastèque-Server, point d’étape

15 avril, 2015 - 18:21

Une version intermédiaire de Pastèque Serveur, un logiciel de caisse, vient de sortir, la 5.1. Elle apporte quelques nouveautés, des corrections de bugs et tout le tralala habituel d’une version intermédiaire. Bref, rien de transcendant, on est face à un logiciel libre qui progresse.

Du coup, je vais profiter de cette actualité pour faire un point sur comment fonctionne Pastèque de l'intérieur. Le « nous » dans la dépêche concerne Scil, la société membre du réseau Libre Entreprise et à l’origine de Pastèque.

La mise à jour

La dépêche étant rédigée pour ça, on ne va pas y couper. Qu’est-ce qu’on se met sous la dent ?

  • un nouveau design d’interface ;
  • un module de sauvegardes ;
  • l’amélioration du module d’impression d’étiquettes ;
  • une page d’accueil digne de ce nom (oui, avant c’était une simple page blanche) ;
  • l’amélioration des exports CSV (les chiffres sont directement exploitables dans le tableur, au format i18n du navigateur) ;
  • les tableaux dynamiques de choix des produits (compositions, gestion des stocks etc.) ont été revus pour permettre la gestion des catalogues de plus de 2000 produits ;
  • une pagination a été mise en place pour les grands catalogues ;
  • les tableaux des rapports sont à présent triables par colonnes (bon, ce n’est pas très visuel, rien n’indique que c’est possible mais ça fonctionne) ;
  • la création de monnaies supplémentaires dans la gestion multi-devises a été simplifiée.

Notons au passage qu’un bug majeur entraînant des pertes de ventes sur Pastèque Android avait été corrigé dans une version 5.0.1 mi-février.

Pastèque, ensemble de logiciels

Pastèque est en réalité une suite composée aujourd’hui de trois logiciels :

  • Pastèque-Server : API et interface d’administration ;
  • Pastèque-Desktop : logiciel client en Java réellement multi-plateforme (Windows, Mac OS X, GNU/Linux, Solaris … tant que vous avez une JVM quoi) ;
  • Pastèque-Android : logiciel client pour Android (étonnant, non ?).

Les logiciels ont un numéro majeur basé sur le schéma de base de données et d’API. Pastèque-Server 5.1 fonctionne donc avec Pastèque-Desktop 5.0.4 et Pastèque-Android 5.0.1.
Le schéma de base de données étant, avec le code d’interface de Pastèque-Desktop l’héritage d’OpenBravoPOS dont Pastèque est issu. Ce schéma de base de données, insatisfaisant à nos yeux, est amené à encore beaucoup évoluer.

Pastèque-Server

Pastèque-Server est disponible gratuitement depuis mi-décembre. Un temps distribué contre rémunération, nous avons cédé à la 5e liberté et mis en distribution gratuite.
Cela signifie qu'il est possible de mettre en place une solution de caisse 100% libre avec Pastèque (ça a toujours été le cas) et gratuitement (c’est ça qui est nouveau).

On peut installer une instance locale de Pastèque-Server pour créer une caisse autonome.

Le logiciel est développé en PHP, sans framework, embarque un peu de jQuery et repose sur PostgreSQL ou MariaDB/MySQL pour la base de données.

Pastèque-Server mélangeant à la fois l’interface d’administration et l’API, le logiciel risque d’être scindé pour sa version 6 entre Pastèque-Administration et Pastèque-API.

L’annonce a été faite en anglais. En effet, en logiciel de caisse libre, même en prenant en compte le monde anglophone, il n'y a pas masse de monde. Alors bon, comme Pastèque est assez souple pour entrer dans le cadre de nombreux pays, on va essayer de rameuter les copains d’un peu partout.

Pastèque-Desktop

Pastèque-Desktop est le canal historique de Pastèque. Celui dont l’interface d’administration, compliquée à maintenir, a été balayée lors de la création de Pastèque-Server. Celui dont le passage à Pastèque-Server a également amené à revoir la gestion des données avec un cache local H2 et un support des pertes de connexions avec le serveur.

C’est le mal-aimé aujourd’hui à Scil. Code pas terrible, interface compliqué à améliorer… Des réflexions sont menées à Scil sur un usage de QT pour le remplacer. En ce sens, des expérimentations sur base de LX POS vont probablement avoir lieu.

Il garde quelques avantages majeurs : rapide à l’usage (même s’il est devenu un veau au démarrage), drivers embarqués, fonctions plus avancées que Pastèque-Android et surtout … bah ça marche quoi.

Pastèque-Android

Pastèque-Android concentre le gros des efforts de développement de Pastèque. Poussé par les commandes très nombreuses, c’est la version qui va le plus bénéficier du passage à la version 6 et qui devrait rattraper Pastèque-Desktop à ce moment là.
Uniquement disponible sur Android, c’est un peu couillon. Nous devons étudier à nouveau les possibilités de travailler en HTML5, mais le métier du POS pose des questions assez peu documentées ou maîtrisées en interne : accès direct au matériel, lutte contre les latences, stockage local de données importantes en volume…

Les progrès sur cette plate-forme sont néanmoins réellement remarquables en terme de matériel, d’intégration des TPE etc. Je ne peux qu’insister sur ce point. Un git clone sur le repo illustre bien le propos

Télécharger ce contenu au format Epub

Lire les commentaires