Perspectives et envies pour 2019 – développement logiciel


Suite de mes envies et perspectives pour l’année 2019 et suivantes. Si vous ne l’avez pas encore fait, vous pouvez lire la première partie sur les formations et cours en ligne.

Héritage

J’ai commencé ma carrière professionnelle comme développeur de jeux vidéo chez Lankhor, expérience qui a forcément teinté la suite de ma vie (le forcément est expliqué dans cet entretien après les pistes de ski). Depuis je ne me suis pas arrêté de programmer, même si le rythme a été beaucoup moins soutenu : ce fut des scripts d’administration système (Bash, Perl), du développement Web (PHP). Dispersion ? Pas si sûr… Et puis zut, faut pas sacrifier les activités plaisantes.

Ski Park Manager

J’ai même commencé deux extensions en Python (une pour GIMP, l’autre pour Scribus) et là, ça vaudrait le coup de les publier, voire de les poursuivre ; un outil pas fini mais qui me contente c’est bien, mais un outil finalisé utilisable par d’autres c’est mieux. Du coup, je les publie (lire la suite).

Un gestionnaire de guides pour GIMP

Si vous avez déjà utilisé Scribus et son gestionnaire de repères (par ligne et par colonne) vous avez peut-être pesté sur le côté fastidieux pour créer des guides dans GIMP (ça s’appelle guide dans GIMP et repère dans Scribus, mais c’est la même chose).

J’ai donc créé une fenêtre qui vous permet de choisir combien de guides verticaux et horizontaux vous souhaitez, sachant qu’ils seront répartis uniformément. Enfin, presque, c’est là que j’ai des choses à améliorer. En effet, dans Scribus, vous travaillez sur une page mesurée en millimètres (ou autre unité du monde réel) qui est divisible. Dans GIMP, votre image est constituée de pixels qui eux, ne se divisent pas. D’où la difficulté à diviser en colonnes et lignes de taille vraiment égale.

Vous pouvez télécharger cette extension sur Framagit : https://framagit.org/dimitrirobert/gimp-guide-manager

Je ne m’en sers pas souvent mais je pense qu’il peut être utile à un concepteur de sites Web (ce que j’aspirais à être à l’époque).

Importer des grands tableaux dans Scribus

Les tableaux et Scribus ça fait deux. Même si la version 1.5 apporte une véritable entité tableau (alors que jusqu’à la version 1.4, les tableaux ne sont que des groupes de cadres de texte), ce n’est pas encore la panacée. Notamment, il n’est pas possible d’importer un tableau réalisé dans un autre logiciel (LibreOffice Calc au hasard).

Oui, il y a bien un script nommé « importcsv2table » et je l’ai essayé. Du coup, j’ai commencé à le modifier. Vous pouvez le voir en action dans la vidéo Scribus : importer un tableau au format CSV (ainsi que des explications écrites sur son fonctionnement pas très intuitif).

Et le télécharger également sur Framagit : https://framagit.org/dimitrirobert/scribus-plugin-import-large-csv

Ce script fut motivé en préparation d’une formation avec des archéologues, dont les rapports comportent précisément des tableaux qui s’étalent sur plusieurs pages. Le script fait le travail, même si le résultat reste des groupes de cadres de texte (du coup, c’est compatible avec Scribus 1.4). N’oubliez pas que vous pouvez accéder au contenu d’un cadre groupé avec Alt + clic, sans dégrouper.

Gérer des formations professionnelles

Là c’est du lourd, un outil parti de rien ou presque. À la base, une certaine frustration à remplir des modèles de document dans LibreOffice Writer et dans Scribus pour produire tous les documents nécessaire à l’organisation d’une formation. Le programmeur qui sommeille en moi s’est dit qu’il fallait faire quelque chose.

Nous avons un site permettant de faire la promotion des formations, de gérer plus ou moins les inscriptions. Nous avons aussi un outil de gestion pour éditer devis et factures, Autonomie, un logiciel adapté aux coopératives d’activités et d’emploi. Mais il manque(ait) la brique intermédiaire, celle qui peut gérer tous les documents administratifs et les procédures exigées par Datadock.

On dit souvent qu’il vaut mieux réutiliser des briques existantes plutôt que de réinventer la roue. Mais, je pense que trop de briques engendre un trop forte dépendance aux producteurs de ces briques : une seule brique peut fragiliser l’ensemble. J’ai donc opté pour du neuf s’appuyant sur de l’existant solide : j’ai commencé le développement d’une extension pour WordPress.

Cela présente plusieurs avantages : WordPress est un logiciel libre très répandu et suivi. C’est un gestionnaire de contenu en ligne, donc, la partie promotion des formations, des dates de session, des commentaires est facile à gérer. Mais un inconvénient flagrant, il faut installer une instance de WordPress (j’avoue, je n’ai pas vérifié si cette extension peut être installée sur une version multisite, ça fait partie des choses à faire).

Je n’ai pas géré l’interconnexion avec un logiciel de gestion, donc, pas de création de facture : cela aurait alourdit le développement inutilement. En revanche, il est sans doute possible de créer des passerelles facilitant la création des factures. À voir.

Cette extension, pour l’instant nommée wp-organisme-de-formation (peut-être faudrait-il lui trouver un nom plus original), est diffusée sous licence GPL sur Framagit : https://framagit.org/dimitrirobert/wp-organisme-de-formation

Ne vous emballez pas, elle n’est pas facile à configurer. Non parce que j’aurais voulu faire du faux libre (un logiciel diffusé sous licence libre inutilisable sans aide du développeur), mais parce que la partie assistance à la configuration n’est pas faite. Et même, une fois configurée, c’est pas encore gagné.

L’objectif des prochaines semaines est de rendre cet outil utilisable par d’autres personnes que moi. Mais, sachez que j’ai déjà géré deux vraies formations inter-entreprise l’année dernière. J’ai rédigé un point d’étape, un état des lieux de ce qui fonctionne, ce qu’il faut changer et ce qu’il faut ajouter.

L’idée ensuite étant de démarcher les organismes de formation qui souhaitent contribuer au développement et/ou au financement.

Autres idées

Quelques idées en passant :

  • dans Scribus, pouvoir importer un texte avec ses notes de bas de page (ou de fin de document) ; cette fonction a existé brièvement en 2015 puis a disparu avec la refonte du système de gestion de notes…
  • dans Scribus toujours, pouvoir importer un document tableur (au format CSV pour commencer) et ranger les données qu’il contient dans les cadres de texte correspondant : par exemple, pour éditer un programme événementiel, il suffirait de créer la maquette, prévoir les emplacements des différentes informations (titre du spectacle, lieu, heure, infos diverses, etc.), d’importer le tableur où toutes ces informations sont classées et d’ajuster la mise en page.
  • encore dans Scribus, je ne trouve pas satisfaisant l’import de document texte (Word ou LibreOffice Writer) ; je ne sais pas si je serais capable de l’améliorer (ça fait quelques années que cela dure), mais j’aimerais faire une extension d’import de texte au format Markdown avec création de styles de paragraphes et de caractères. Si cela fonctionne, j’intégrerai un peu de Markdown dans mes formations Scribus. Et cela me permettrait d’avoir une chaîne de production documentaire qui crée une version Web et une version papier à partir d’une même source Markdown.
  • depuis GIMP 2.10, l’extension Separate+ qui permet de créer des images en CMJN, ne fonctionne plus aussi bien (et pour cause, elle n’est plus maintenue depuis…). Il n’y a peut-être pas grand chose à corriger pour tenir jusqu’à la sortie de GIMP 3. Mine de rien, je me servais pas mal de cette extension pour produire des effets d’encrage sur des affiches. Ou alors je regarde du côté de Krita.

Y a plus qu’à

Je ne garantirais pas que cette liste soit exhaustive. Je reviendrai sur les avancées des divers chantiers sur ce blog.

De plus, je voudrais rafraîchir ce site Web (oui, j’avais dit que je ne faisais plus de Web, mais là c’est le mien), que les informations importantes soient plus facile d’accès. Faire quelque chose de plus sobre (commencer par supprimer le diaporama qui ne sert à rien). Peut-être même ne faire qu’un seul site avec celui des cours en ligne.