Ayant moins de temps "libre" à y consacrer en ce moment, j'utilise mes sessions de codage sur Twitch à avancer sur ma liste de tâches globales.
Vous ne verrez jamais cet enchevêtrement de projets dans son intégralité. C'est un truc sur tableau blanc recto verso assez bordélique, un peu comme le multivers. J'en écris régulièrement des bouts dans des arborescences de dépendances sous forme de notes informatiques pour avoir un semblant de priorités.
Ingérable sous forme d'un tableau kanban cet arbre de dépendances entre tâches, sous-tâches et projets serait plus simple à représenter dans un diagramme de Gantt (sans durée ni planning).
Il faudra peut-être un jour que j'informatise tout ça, en testant ce composant de TMS Software pour la représentation graphique sur une base de données à moi, interfacée avec l'API de GitHub (pour les tickets publics) et celle de Gitea (sur mon NAS si je ne l'élimine pas une bonne fois suite aux plantages de cette semaine) en plus de quelques feuilles volantes, fichiers textes et Notes.
En réalité la meilleure représentation s'apparenterait plutôt à celle d'un réseau neuronal tant les dépendances sont multiples et parfois récursives...
Il faudrait que je passe du temps à réorganiser le tout, mais je préfère le passer ailleurs. Etonnant, non ?
Petit exemple : l'ajout du TBitmap comme type de champ dans Socket Messaging Code Generator la semaine dernière était nécessaire pour faire tourner proprement une démo de transfert d'une image sur socket IP entre un projet VCL et un projet FireMonkey. Cette démo et celle-ci avec un QR code ont été créées comme bases de travail pour un projet réel à développer par un stagiaire nouvellement delphinaute chez un client.
Bien entendu, comme tout ce que je mets à disposition sur GitHub, ça a été codé sur du temps non facturé et peut servir à beaucoup d'autres projets. Si vous vous en servez sur des projets commerciaux, merci d'envisager de vous abonner à Zone-Abo, acheter des licences de mes logiciels&librairies, sponsoriser mes dépôts de code ou faire un don pour me donner plus de temps pour ces développements publics.
Tout ça pour dire que je continue aujourd'hui sur des choses dont j'ai besoin ailleurs (pour des "projets clients", publics ou personnels). Nous travaillerons donc sur ma boite à outils pour Delphi.
Ce sera essentiellement du travail sous Delphi mais peut-être aussi du PHP et/ou du Javascript en fin de stream pour avoir la version web d'un ou deux tickets, mettre en place un dépôt pour une boite à outils web (front et back) et pouvoir ensuite réalimenter le blog Trucs de Développeur Web.
Il y a deux ans j'avais sorti les exemples d'utilisation de ma boite à outils Delphi dans un autre dépôt de code pour alléger les choses rapatriées à chaque utilisation de la librairie comme sous-module. Ca me semblait plus simple comme ça mais en pratique c'est gonflant à gérer à chaque ajout de fonctionnalité. Je vais donc commencer par refusionner le tout.
Pour fusionner tout ça je vais aussi remettre les sources de la librairie dans un sous-dossier "src" comme je l'ai fait pour mes composants FMX. Ca évitera de modifier deux fois les chemins vers les librairies dans les projets d'exemples. Je créerai donc un petit programme "one shot" pour générer les deprecated et déplacer les fichiers. Ce projet à usage unique sera en fait utilisé plus tard sur d'autres dépôts sur lesquels je dois faire la même opération.
Nous jetterons ensuite un coup d'oeil à ma boite à outils pour Turbo Pascal histoire de rapatrier dans les librairies Delphi ce qui est susceptible d'être réutilisable. Fusion des fonctionnalités regroupables (par exemple sur la manipulation de chaînes de caractères), création d'exemples d'utilisation, mise en place des "deprecated" dans les fichiers qui ne seront plus utilisés, ajout des tickets de "nettoyage du dépôt" correspondants...
Enfin, selon le timing, nous nous occuperons d'une routine de chiffrement / déchiffrement très simple (par XOR et permutation d'octets), corrigerons le calcul de checksum et ferons des modifications sur les classes dans Olf.RTL.Params.pas (notamment les événements de chiffrement/déchiffrement des données stockées).
J'ai déjà la version PHP pour le calcul de checksum car je m'en sers dans des API entre serveurs web comme entre logiciels et serveurs. J'aurai besoin d'une version PHP et plus tard JavaScript des routines de chiffrement et déchiffrement.
En résumé voici donc l'ordre des opérations du jour :
- création d'un programme à usage unique pour déplacer des fichiers Pascal d'un dossier à l'autre tout en maintenant le lien entre les deux car je tiens à la compatibilité ascendante
- déplacement des codes source de la racine au sous-dossier "src" dans ma boite à outils pour Delphi
- rapatriement des exemples d'utilisations de ce dépôt (qui sera ensuite archivé) vers le sous-dossiers "samples" de la librairie
- tour de ce qui traine dans ma boite à outils pour Turbo Pascal (qui devrait être utilisable par les développeurs en Free Pascal) et rapatriement vers la librairie de ce qui peut servir sous Delphi
- création de quelques projets de démo ou test en lien avec ces fonctionnalités. Faire des programmes d'exemple évite les tests unitaires...
- traitement de quelques TODO (chiffrement, signature, stockage de paramètres)
- création d'un dépôt pour ma boite à outils web back end
- création d'un dépôt pour ma boite à outils web front end
Vous vous en doutez ça ne tiendra jamais en une fois. Nous déborderons sur lundi et mardi selon les autres priorités du moment.
Je vous donne donc rendez-vous sur Twitch entre 15 et 18 heures ou sur Serial Streameur pour la rediffusion lorsqu'elle sera publiée.