15 avril 2024
Et un petit point de parcours

Mon dernier billet a presque 5 mois… Il est grand temps de sortir la tête de l’eau pour faire un point.
MAP.ly pour Construct 3
Lors du précédent épisode, j’en étais donc à mes extensions Construct 3 autour de l’intégration de LeafletJs et plus précisément, j’avais sorti l’extension de base qui permettait d’afficher ces fameuses cartes. Après quelques tests et réflexions, j’ai décidé de modulariser cette première version en extrayant certaines fonctionnalités dans des extensions à part (de mémoire, le zoom, le drag et le graticule) – pour éviter de trop charger l’interface par défaut. En effet, le paramétrage de Leaflet peut vite être assez copieux.
Une fois cela fait, je suis passé au reste de ma liste et j’ai donc pondu 9 extensions supplémentaires (pour gérer les marqueurs, leurs déplacements, des réseaux de marqueurs, des objets Construct sur la carte,…). L’une des extensions m’a même procuré un petit moment de fierté : MAP.ly Editor. Cette extension permet d’afficher une carte, côté éditeur – ce qui est plus simple que de naviguer entre une carte quelconque dans un navigateur pour récupérer les coordonnées géographiques et C3. Enoncé comme ça, cela ne semble pas grand-chose, sauf que l’éditeur de Construct 3 est complètement verrouillé (CORS) et empêche la récupération de ressources externes (on oublie donc un bête Iframe sur OpenStreetMap ou équivalent). Et je n’étais pas le premier à rencontrer ce problème, qui n’avait pas été résolu . Mais j’ai finalement trouvé un moyen et sous réserve de ne pas avoir énormément de data à charger, et bien cela ouvre la voie à de nouvelles choses en terme d’extension de l’interface de l’éditeur de Construct 3 jusqu’ici assez peu flexible. Bref, petit instant de satisfaction personnelle.
Geodex
Sur cette base, j’ai développé ma première application en utilisant certaines de ces extensions, et dans la lignée de l’objectif initial (sur lequel je reviendrai sans doute à un autre moment). L’objectif de cette application (Smartphone/Android) et de pouvoir collecter des informations au cours d’une promenade, par exemple, pour pouvoir les utiliser « offline » par la suite (coordonnées GPS, QR code, photo des alentours…). J’ai passé beaucoup de temps sur l’orientation de l’écran afin d’avoir une interface adaptative. Comme tout se passe dans un Canvas, l’adaptation du contenu au conteneur, de base, est assez rigide et ça ne m’allait pas. De ce côté-là, je suis assez content du résultat, mais mon application est encore assez buggé et va nécessiter un peu d’huile de coude et de jus de cerveau pour être exploitable.
Une petite phase sous Unity
Pour la 4ème fois depuis 2017, je m’investis dans l’organisation du Gala de danse de l’école où sont inscrits plusieurs membres de ma petite famille. Plus précisément, je fais le montage des piste audio (car je ne sais pas vous, mais en ce qui me concerne, j’ai toujours beaucoup de mal durant les représentations des associations avec les coupures et transitions un peu barbares :-) ) et surtout je crée des décors numériques projetés derrières les danseuses. A chaque mouture, je monte un peu le niveau en terme technique. Cette année, je pousse un peu plus fort le curseur, et je réalise ça sous Unity avec Umodeler. L’autre chose que j’ai expérimenté pour l’occasion, c’est l’IA générative avec un projet assez cool pour Krita : Krita AI Diffusion qui permet de bosser Offline avec une assistance qui n’est peut-être pas le top du top, mais qui est gratuite et entièrement Offline. C’est vraiment un outil sympa.
XGB, ou le fantôme de Gamesberry
Il y a 10 ans cette année, dans une quinzaine de jour, je co-fondais une SCOP, Gamesberry. Cette aventure a tristement pris fin 2 ans après et j’avais gardé dans les cartons ce que mon camarade Tony avait produit côté backend avec peu d’espoir de réussir à en faire quelque chose un jour. Il s’agissait d’un composant pour Joomla (v3) pour générer des datas de jeu géolocalisées, persistantes, évolutives et multijoueurs, le tout accompagné d’un script nodeJs pour le côté temps réel. Par défi personnel, pour continuer sur ma lancé de régler leur compte à tout ce que j’ai pu entamer et ne pas finir dans le passé, parce que j’entrevois une possible utilisation, j’ai ressorti la chose de son carton. Et c’est pas gagné. Entre le fait qu’on est passé de php 5.6 à 8.2, de Joomla 3 à Joomla 5, que nous avions été un peu chiche sur nos intentions en terme de documentation, c’est un peu le parcours du combattant. En plus, comme j’ai « containerisé » mon Joomla à la va vite, tout est assez pénible à débugger. En conséquence, j’ai pris quelques jours pour muscler mon environnement de dev. Tout d’abord, j’ai installé Tabbyml, une IA générative d’autocomplétion de code en local (oui, c’est une marotte) et une extension VSCode, Wingman2 qui se connecte sur l’API de Tabbyml. Les deux ensemble, j’ai une sorte de Github Autopilot du pauvre, mais qui fonctionne déjà pas si mal. Ensuite, j’ai repris mon container Docker pour y faire fonctionner Xdebug.
La suite !
Tout d’abord, j’ai une dernière chose à faire sur le Joomla (je ne sais encore si c’est très pertinent), c’est d’activer certains caches de Joomla pour accélérer le chargement des pages pour rendre les itérations plus fluides. Quand cela sera fait, et si c’est suffisant, je reprendrai le refonte du code de XGB version Joomla3 pour l’emmener vers les standards de Joomla 5. Comme je ne suis pas complètement opérationnel en PHP, cela va être un peu un challenge.
Comme cela représente, sauf bonnes surprises, un gros taf, je pense que je ferai quelques pauses « récréatives». J’en ai 2 en tête :
- Finaliser Geodex
- Faire évoluer mon site perso ici présent. J’ai du contenu à mettre en forme d’une part, et de l’autre, je suis un peu frustré par Netlify CMS en terme d’expérience d’édition (le rebuild à chaque micro-modif, c’est pénible) et je pense passer sur une BDD à part entière.
Et puis bien évidemment, je suis toujours disponible, si vous avez envie de travailler avec moi !