Du tutoiement sur les réseaux sociaux

Je vais être honnête : un truc m’agace. Le vouvoiement sur les réseaux sociaux. Cette phrase peut être absurde mais elle ne l’est pas tant que ça. Dans la vraie vie, nous Français, on aime bien, quand on ne se connaît pas, mettre cette distance verbale, quitte à fustiger son interlocuteur qui glisserait un « tu » indélicat. Personnellement, ça m’arrive. Idem pour les Allemands avec leur « Sie », les Espagnols avec « usted ». Bref.

J’ai eu cette idée de post en voyant une conversation tourner au combat de poissonniers sur un thread Facebook (pléonasme), qui concernait la critique d’une photo, avec cette fameuse phrase « ouais, déjà on ne se connaît pas je ne vous permets pas de me tutoyer ! « .

Mes premiers « surfs » sur la toile datent de fin novembre 1997, soit 8 ans après la création du Web, dans le CDI de mon lycée. A l’époque, seule une certaine « elite » pouvait créer du contenu dans la toile, il fallait savoir les bases du HTML et se débrouiller avec un logiciels FTP, donc une certaine intelligence. C’était le bon temps, tu pouvais même avoir Thierry Lhermitte en prof pour qu’il t’explique tout ça (dire que je me suis débarrassée de ce CD :'( , je suis dépit) :

Mais quelque chose m’a frappée. Dans cet univers virtuel, les créateurs et ceux qui postaient dans des forums faisaient un peu comme partie d’une communauté. Rappelez-vous qu’à l’époque (pour ceux qui étaient nés, c’est un temps que les moins de 20 ans etc …), Internet était le support du projet Autoroutes de l’information et finalement, cet internet était une ideosphère qui devait réunir le monde. Pourquoi s’embêter avec un « vous », franchement, puisqu’on est tous copains ? C’était le bon temps, où les insultes envoyées étaient bon enfant, et faisaient rire.

Voici d’ailleurs un extrait d’un texte intéressant que je vous invite à lire, et qui donne une idée dans quoi on baignait à cette époque, et c’était vraiment ça (inutile de préciser que je suis tombée de haut, naïveté adolescente oblige) :

[…] Ensuite ce discours a pris une deuxième direction, parallèle de la première, consistant à valo­riser sur un mode quasi religieux le nouveau monde d’Internet. La forme rhétorique, complémentaire de la disqualification, est celle du prosélytisme. L’idée selon laquelle le réseau Internet pourrait bien servir à réaliser concrètement les vieux rêves de « conscience planétaire » du « New age », l’idéal d’une « unification universelle des consciences » ou encore la montée vers la « noosphère » chère à Teilhard de Chardin (jésuite et philosophe, qui inventa dans les années quarante la notion de « noosphère » et plaida pour une « collectivisation des consciences » à l’échelle planétaire), est devenue très populaire dans certains milieux proches de la « Toile ».

https://journals.openedition.org/ress/604

Du coup j’ai balancé une référence de la Netiquette. La Netiquette peu de gens savent ce que c’est pourtant ça date de 1994, et c’est un « contrat » (inclus dans les RFC du web) ou plutôt une charte des bonnes attitudes à avoir sur le Net. Rien de très officiel mais ça a été longtemps une référence à l’époque où le Net comptait 200 millions d’utilisateurs, et que le cadre était assez mal légiféré. Il est stipulé dans la discussion :

L’usage, dans les forums, veut qu’on utilise le tutoiement, c’est une pratique courante, bien que non généralisée sur l’ensemble des forums.

Tutoyer un inconnu sur internet, n’est pas considéré comme malpoli (encore que ça dépende du contexte et de l’usage qui règne sur le forum en question), alors que tutoyer un inconnu dans la rue, est beaucoup plus délicat (sauf rapports d’âges « favorables »)

Quand j’ai commencé à utiliser internet, il y a un paquet d’années, les articles sur la netiquette prévenait que le tutoiement ne devait pas être mal pris, que c’était l’usage le plus répandu. L’article, sans doute traduit de l’anglais, du coup, ne le mentionne pas.

Il serait quand même intéressant de traiter ce sujet, afin que les gens ne connaissant pas la nétiquette, et peu familiarisé avec l’usage des discussions sur internet, ne se sentent pas intimidés. Il ne faut pas confondre tutoiement et manque de respect. Le vouvoiement peut aussi être irrespectueux quand il est utilisé pour établir une distance.

Le tutoiement n’est bien sûr pas une obligation de la nétiquette, mais il n’est pas un comportement grossier, comme certains pourraient le penser. Internet aboli pas mal de frontières, quand on ignore l’âge, le sexe, et le statut social de la personne avec qui on discute, à bâtons rompus. ça vaut quand même le coup de le mentionner!

Wikipedia

Un bel exemple de jolie page des années 90 avec le règlement de Usenet.

Bien sur, dans les années qui suivirent, dans des cadres « formels » comme des lettres de motivation, je vouvoyais mais je n’ai jamais abordé sur les réseaux et IRC en « vous ».

Voilà un peu pourquoi ça me fait de la peine. D’autant plus que beaucoup de gens s’insultent bien comme il faut, tout en gardant le vouvoiement. Style, je t’insulte et te manque de respect, mais je reste polie.e, tavu. Paradoxal tout ça.

Personnellement, je vais être dure mais je le ressens tel, je trouve que le vous sur internet, de par mon vécu (23 années sur la Toile), a un retentissement condescendant et hypocrite, surtout quand on le voit suivi d’injures. Après, il y a une génération excusables de Boomers (la génération de mes parents, nés après-guerre qui ont donc 60-70 ans) qui sont arrivés dans les années 2000 et qui ne connaissaient pas les us et coutumes et pensent que le vouvoiement est donc de mise. Et je pense que de débarquement de gens méconnaissant ces principes, et la centralisation du net, tuant les communautés de passionnés, qui est à l’origine de cet abandon du « tu » qui nous était cher, à nous, premiers arrivés.

Donc ne m’en veux pas si je te tutoie, internaute, même si tu me vouvoies auparavant, car ce sont mes règles, mes repères, et si tu es respectueux je le serai aussi 😉 . Je garde le vous pour mes prospects (et encore !), mes conversations sur LinkedIn (réseau professionnel oblige, donc formel) ou les organismes-suceurs.

Ces organismes-suceurs-là

J’ai passé un test de QI

Plus jeune, et encore maintenant, j’ai toujours eu ce sentiment un peu étrange d’être décalée, un peu extraterrestre. Une de mes anciennes camarades de classe me décrivait comme celle qui « était toujours penchée sur ses livres ». Mes souvenirs d’enfance sont majoritairement des moments de soif de connaissances, de promenade dans la nature pour étudier la botanique, découvrir la science. A trois ans, j’avais un jeu de cartes constituées de lettres en capitales que je savais très bien reproduire, je savais écrire mon nom et j’avais compris la numération jusqu’à 100. J’ai visiblement acquis très tôt le langage. Mais il ne m’était jamais venu à l’idée que je pouvais faire partie des « Hauts Potentiels ».

Ma scolarité s’est très bien passée, j’ai eu mon BAC mention bien et j’étais pratiquement toujours dans le peloton de tête, à part en seconde où j’étais en pleine crise d’ado, rébellion et tourments émotionnels constituaient mon quotidien, et la fac n’a pas été non plus une chouette période. Début de vie d’adulte, je me posais d’autres questions plus concrètes que je n’étalerais pas ici … J’ai également une certaine façon d’apprendre, très pratique, par l’exemple, qui n’est pas toujours en accointance avec la … pédagogie de la fac ? si toutefois on peut dire que la plupart des profs de fac sont pédagogues … bref, un autre souci que je ne développerai pas.

Je me suis donc souvent dévaluée, j’ai cru les mauvaises personnes, je faisais un complexe d’infériorité avec mon premier amour qui lui doit avoir un QI d’au moins 150 (large). Mais plusieurs fois, certains conseillers d’orientation, ou des collègues m’ont conseillé de passer ce test. Mais le vrai, encadré par un psychologue, pas celui qu’on trouve dans les magazines.

Je me suis longtemps cherchée, parcourant diverses théories, car j’ai un gros souci de gestion des émotions, jusqu’à aller loin, étais-je borderline ? asperger ? Jusqu’à ce jour de 2016 où une de mes ex m’emmène à une conférence qui parlait de ces fameux zèbres. Et là j’ai eu le déclic : cette pensée en arborescence, cette soif de connaissances, cette hyper sensibilité qui les caractérisent reflétaient ma propre vie ! Et si j’étais … surdouée ?

Un long chemin de prise de conscience

Le temps s’est écoulé jusqu’à ce que je me dise qu’il fallait vraiment que j’ai le cœur net. Trouver un.e psychologue habilité.e à faire passer les tests de QI est facile, Google est mon ami. J’ai pris rendez-vous en faisant d’une pierre deux coups : je voulais passer le test, le WAIS-IV, basé sur l’échelle de Wechsler, et poser également le diagnostic de l’hyper-sensibilité. Faire en bref un bilan cognitif qui dirait enfin qui je suis …

Le premier rendez-vous a été consacré à l’établissement de l’anamnèse : en gros elle a établi avec moi mon « mode d’emploi », et là elle n’a posé aucun doute sur mon hyper-sensibilité et mon hyper-émotivité.

Le deuxième rendez-vous a été consacré au test et a duré deux heures … alors autant vous prévenir : le test se passe en face à face, et il n’y a aucune fiche a remplir. Les test ont été très divers : des images à reconstituer avec des cubes-puzzles (très à l’aise), des suites de nombres à restituer de mémoire (dans l’ordre d’énonciation, ordre croissant, ordre décroissant …), suite de figures à terminer, éléments de dessins qui manquent, problèmes à résoudre mentalement, motifs à retrouver le plus vite possible, et mon talon d’Achille : les codes, mettre des signes correspondant à des chiffres. Petit à petit la fatigue me gagne force 10, je prends du sucre, bois de l’eau, c’est pas facile, et je termine l’épreuve les-si-vée. La psy trouve que je suis une bonne réfléchisseuse mais ne se prononce pas sur le verdict. Il faut qu’elle calcule tous mes scores.

Il n’y a pas que le QI dans la vie !

Troisième rendez-vous, verdict. Et la réponse est étonnante : mon QI est … invalide ! J’insiste … combien, combien ? J’ai un QI de 120, ce qui n’est pas si mal, et me pose dans l’étalonnage supérieur. Mais j’ai un gros déficit concernant la concentration : je réfléchis bien mais le traitement des informations me coûte énormément en énergie. Ça, je l’avais remarqué quand je passais mes leçons de conduite par exemple. Ou même dans la vie pro, quand je n’étais pas presta. J’ai besoin de longues poses, ce qui n’est pas bien vu quand on est dans une entreprise.

Courbe de Wechsler

Elle détaille les 4 zones de performances :
– la compréhension verbale (ICV) qui est à 131 (zone très supérieure)
– le raisonnement perceptif (IRP) qui est à 118
– la mémoire de travail (IMT) qui est à 109
– la vitesse de traitement (IVT) qui est à 94

Et là, la psy me parle de mon IAG, qui fait « assouplit » certains coefficients déficitaires, et me dit que c’est ce chiffre-là qui doit être pris en compte pour mon diagnostic.

Mon IAG est de 129, et il est se situe entre 123 et 133, au 97eme rang percentile. Elle ajoute donc, qu’au vu des résultats, et de mon fonctionnement cognitif, on peut me classer dans la catégorie des « hauts potentiels ». C’est de justesse, mais j’en suis.

Maintenant concrètement, ça donne quoi ?

Une bien belle machine au final … (vraie photo de moi avec des parties intimes dedans)

Hé bien je dirais que ça rassure, niveau identitaire, un peu comme quand j’ai compris et admis mon homosexualité … je sais que ça fait partie de moi. Maintenant que j’y réfléchis, mes meilleurs amis sont des gens qui « en ont », même si niveau amoureux, je me dévalorisais tellement que ça me rassurait d’être la plupart du temps avec des femmes « pas futées », mais je finissais par m’ennuyer avec elles. D’autant plus que même en se sachant pas malines, elle n’en n’étaient pas humbles, et pensaient avoir toujours raison (tacle personnel, pim). Je suis également rassurée, et sais que la machine marche plutôt bien. Mais je sais prévenir maintenant mes clients et quoi leur dire pour leur expliquer pourquoi je préfère le télétravail pour les missions de dev : je suis neuro-atypique et je sais comment je fonctionne, et comment je tire le meilleur de mes performances, et ça c’est cool 🙂

Création de mon Wiki Minetest !

Être sérieux tout en s’amusant, beau concept ! J’adhère !

Comme certains le savent déjà, je n’ai pas super bien vécu le confinement. Je pensais être une louve solitaire dans l’âme, pensant que son rêve le plus cher serait d’être débarquée sans retour sur une île déserte.
Ben non ! En fait. J’aime les gens.
Bref, durant cette période de confinement, il a bien fallu s’occuper. J’ai eu la chance de pouvoir continuer à travailler normalement, étant déjà autoentrepreneur à la maison, mais j’avoue que en dehors de ces heures, il a fallu m’occuper, si mes sides-projects sont prenants, il me fallait « sortir », et ça j’avoue que ça m’a bien manqué, surtout pour l’urbex. Alors je suis sortie d’une autre façon.

Il y a dix ans de ça, je découvrais Minecraft … de loin. Je l’ai associé malgré moi à une tête de nœud qui voulait jouer les petits chefs, et qui pendant les pauses de midi, passait son temps sur la plate-forme, tout en ingurgitant un répugnant « hachis parmentier » made in Carrefour ou Casino. Ecoeurée par l’odeur de ce truc infâme qui se voulait être de la nourriture, je regardais ce qu’il faisait du coin de l’œil, le traitant intérieurement de « bébé qui joue aux Lego ». Je me suis ensuite renseignée sur le projet, et j’avais même écrit un article assassin sur ce blog, espérant que mon ennemi allait tomber dessus et se sentir outrageusement blessé dans son égo trop développé.

Dix ans plus tard, je me rends compte que ce programme a toujours du succès et que bon nombre de geeks dans mon entourage jouaient au dérivé libre et gratuit de Minecraft (parce que racheté par Microsoft, c’est devenu diabolique) appelé Minetest. Je me suis dit alors que si ces gens, intelligents, aimaient ce jeu c’est qu’il devait y avoir une bonne raison. Oui je sais, j’ai tendance à mettre des cases « tout blanc tout noir ».

Des cookies ! Plein de cookies !!!

Je m’y suis mise en test, en mode survival, en mode créative, un peu touché à tout, construit une maison de fortune, et j’ai été surprise de tout ce qu’on pouvait faire. Puis j’ai un pote qui m’a dit « viens sur mon serveur, j’y joue avec mon fils, on est bien et des cookies t’attendent ! » … donc là j’ai commencé à construire des trucs plus sympas, un cottage en bord de mer, que j’ai relié à un « donjon », devenu base de crafting (fabrication). Puis ayant fini, j’ai crée un château, puis des champs cultivables, avec des éléments craftables pour créer des petits plats, une ferme avec des vaches et des moutons, etc …

Si c’est pas sympa, franchement ?
Domaine avec château, champs et ferme
Salut, toi !

Personnalisable à l’infini !

Laissant jouer mon pote en famille, j’ai récupéré les sources du monde qu’il avait crée pour l’installer sur mon serveur. J’ai réinstallé les mods pour qu’ils soient compatibles avec ma version, et j’ai commencé à installer d’autres mods sympas. J’avais en effet commencé à faire une sorte de station de métro à côté du château, avec les rails de base, et j’ai donc voulu tester le formidable AdvTrains pour qu’on croit vraiment, à ce métro. Et franchement, je me suis bien amusée à y mettre des wagons qui semblent bien inspirés du U-Bahn berlinois, qui roulent réellement ! Et je pourrai même à l’avenir les automatiser ! Oui, c’est exactement une version virtuelle du petit train électrique !

Prenez place …

C’est ainsi que j’ai commencé à créer un vrai petit village avec : église, mairie (j’ai même un cimetière où j’ai mis les prénoms de mes exs) … à travers différents mods : mod_church, homedecor, x-decor … pour ne citer que ceux-là. Parce que oui, on peut optimiser son jeu comme on le souhaite, soit en installant des mods existants, soit en les créant soi-même avec le langage LUA. Et là on commence à toucher le côté geek du jeu (cœur avec les doigts <3).

J’essaie pas mal de m’inspirer des tutos de Richard Jeffres, qui a l’air de bien s’amuser et qui fait vraiment des choses impressionnantes.

Une de mes dernières créations en date : garage privé et voitures de luxe

Comme dans mon rêve

Ce que certains mods apportent, ce sont des extensions aux biomes existants. Parce que oui, ton monde dans Minetest et juste immense et s’étale en 3 dimensions sur 60000 blocs pour la dernière version. Je pense que peu de joueurs ont déjà tenté de générer la map complète de leur univers. C’est ainsi qu’on traverse savanes, jungles, icebergs, déserts … Mais on peut y ajouter une touche bien fantaisiste.

Le mod Ethereal apporte de nouveaux biomes, ainsi que de nouveaux arbres et plantes … il y a également le mod Caverealms qui apporte aussi de nouveaux styles de caves. J’ai également installé Nether mais je ne le trouve pas aussi sympa que ça en a l’air. Il faudra voir à l’utilisation.

Oui, ce sont des champignons géants.
Je sais pas vous mais je trouve ça trop joli <3

Geek stuff

Bien sûr je ne compte pas m’arrêter là. Si je compte agrandir mon petit village en y ajoutant des restaurants et des boutiques, j’ai également très envie de faire des choses bien plus poussées qui font l’attrait de Minetest : créer des usines et automatiser le métro. Car avec le langage LUA, qui peut s’injecter dans les éléments du jeu, on comprend l’intérêt ludique de ce qu’on appelle Serious Gaming.

J’ai commencé à suivre quelques tutoriels justement pour commencer à comprendre comment tout cela fonctionne.

Un calculateur qui affiche le résultat en chiffres et en lettres (avec Mesecons et Digilines)

Du coup voilà, j’ai plein de projets et espère bien ramener des gens car je m’y sens un peu seule sur ce serveur. Donc j’ai commencé à créer un wiki et ferai à l’avenir quelques vidéos pour vous monter un peu ce mignon petit monde 😉

Et hop : http://minetest.amelieonline.net

Et sinon la moralité de cette histoire : quand on ne connaît pas, on ne juge pas 😉 ! A plus tard dans la Matrice 😉 !

Non, PHP n’est pas « OK boomer »

Il y a quelques jours je suis tombée sur cet article, réponse à un tout autre billet de blog que j’avais plutôt trouvé pertinent.

J’ai été à la fois dev et lead dev. J’ai pu me confronter à des problématiques de gestion d’équipe dans une structure où il y avait quelques soucis qui ne dépendaient pas de moi, et ça retraçait assez fidèlement ce qu’une boite doit faire pour garder une bonne équipe. Ce n’est pas uniquement une affaire de garder un dev, mais garder une vraie équipe soudée et productive dans la satisfaction. A mes yeux, une boite qui comprend ces points a un gage de qualité. Mais passons, ce n’est pas le sujet. Le sujet a été une seule phrase, tellement absurde que je n’ai pu m’empêcher de la twitter : « Twitter a démarré avec Ruby; Facebook avec PHP ; deux technologies bien pourries et so OK Boomer aujourd’hui. » (sic).

Déjà, ça manque d’argument, pourquoi « pourries », et puis ce « ok boomer » tellement dénué de sens …

Je n’ai pas d’affinité particulière avec Ruby, j’ai déjà bidouillé avec Ruby On Rails, que j’ai trouvé pas mal … mais sans plus.

Pour moi PHP représente tout la dynamique du web, et pour preuve, c’est le rare qui tienne encore debout et qui ait autant de popularité depuis 25 ans. Je ne parlerai pas de Go, qui a sa côte de popularité, mais tout frais, ou de Javascript qui a engendré NodeJS qui pour moi est plus une mode. Javascript n’a son intérêt qu’en front-end, à mes yeux.

Au commencement … il y avait … juste du script pour page HTML en fait …

Je me suis mise en premier à PHP car c’était à mes yeux celui qui allait pérenniser, j’ai eu comme une intuition qui me disait de foncer dedans. Car ce n’était pas gagné, au début des années 2000, les entreprises préféraient embaucher des développeurs ASP ou J2EE pour leur back-end et applications web. Fraîchement sortie des bancs de fac, je ne pouvais pas payer et investir pour apprendre ASP sur un serveur dédié, alors que PHP est disponible gratuitement.
Je passe cette discussion avec le « petit Gregory du Japon » (il se reconnaîtra) qui m’avait balancé en 2000 : « si tu fais un jour du PHP je me ferai nonne. Oui, tu as bien lu : NONNE ». Challenge accepted. J’attends toujours que tu mettes le voile, Greg.
Donc j’ai continué à me pencher sur le vilain petit canard, ce PHP qui pouvait « additionner des salades avec des macaronis ». Et il suffit de regarder du code legacy pour se rendre compte de ses faiblesses … le PHP 4 objet avec ses constructeurs spéciaux (car le langage n’avait pas au départ été conçu pour le modèle objet), il fallait parfois réinventer la roue pour faire des itérateurs, ses noms de fonctions natives à la one-again (on a str_​getcsv et puis après strchr, un coup underscore, un coup pas, logique les gars ?) et surtout son faible typage (toujours d’actualité mais en voie de progrès. Mais n’est-ce pas un bon point, aussi ?). Mais PHP était un langage facile à apprendre, et il l’est toujours : pour ceux qui veulent se faire la main en programmation, c’est un bon début.

Le souci de qualité

Pourtant 25 ans après, PHP est on ne peut plus présent, ASP ne fait plus parler de lui et J2EE se raréfie. Il est même devenu plus costaud qu’avant … son modèle objet se peaufine, le typage se fait de plus en plus strict, et puis les librairies évoluent de plus en plus notamment avec l’apparition de SPL, mais également des librairies. Vanilla PHP n’est plus trop d’actualité, on a vu apparaître PECL, PEAR, et aujourd’hui la star c’est Composer, qui permet d’installer à la volée bon nombre de bibliothèques, et d’analyseurs syntaxiques. Car le développeur PHP d’aujourd’hui est soucieux de la qualité de son code : il fait appel à des analyseurs (notamment PHP-Stan) et produit des tests unitaires et des tests fonctionnels (Behat …).

La puissance des frameworks et des design patterns

La force de PHP, après avoir proposé moult CMS tels que SPIP, Joomla … dans les années 2000, a résidé dans l’apparition des frameworks, qui ont solidifié les bases du langage pour permettre non seulement aux devs de coder plus proprement, mais également de pouvoir définir des architectures évoluées en fonction des design patterns (ce qui fait de plus en plus penser à une structure type JAVA) : Zend Framework, Symfony et Laravel en tête de liste. Des architectures qui évoluent et peuvent solliciter efficacement des API REST pour permettre une mobilité des données, segmenter le code en multi-repositories pour permettre une meilleure maintenabilité du code. Et par ce biais, a permis aux CMS d’évoluer, on pense à Drupal ou Prestashop qui ont intégré Symfony dans leur code.

PHP a également gagné en performance et scalabilité grâce à FPM, qui permet de pouvoir lancer plusieurs versions du serveur. Et by the way, Facebook utilise toujours PHP … en sous-marin mais toujours …

Toujours en évolution !

A ce jour, PHP 8 est en prévision, avec plein d’améliorations, notamment le Just In Time. Et j’avoue avoir bien reçu PHP 7.4, car je l’avais attendue longtemps depuis des années, cette feature : PHP 7.4 intègre les déclarations de type d’argument. Enfin on peut typer les propriétés d’une classe !!! Yes we can ! Yalla !

Aujourd’hui PHP est devenu plus qu’un simple outil de scriptage pour sites web :
– il permet de réaliser des scripts en ligne de commandes et tâches automatisées, et on peut même créer des exécutables !
– il permet de programmer de vraies applications web
– il permet efficacement de se connecter avec une base de données, de manière de plus en plus sécurisée via les requêtes préparées

Il est PARTOUT, et même Microsoft, qui avait lancé ASP, le soutient dans les séminaires. Les débutants peuvent facilement l’appréhender en manipulant progressivement leurs pages HTML, et en guise de cerise sur le gâteau, la communauté des développeurs PHP est LARGE, depuis toujours. Vous séchez ? Vous avez obligatoirement des forums, des sites, la doc officielle régulièrement mise à jour, des Slacks pour vous aiguiller. Et il reste open-source et gratuit !

Alors sérieusement, PHP, un langage pourri et OK Boomer ?

Devs : on a tous débuté …

Rappelez-vous : dans mon article « Fuck you Masterboy », je mentionnais ce fameux site où j’avais crée mes premières lignes en PHP. C’était vers 2002-2003. Et comme je le mentionne dans « Comment archiver sans trop pleurer », je suis en train de gratter dans mes sources pour déterrer mes vieux projets.

Et ça tombe bien, j’ai trouvé les sources de ce site, que je mets à dispo sur Github : amelaye/MasterboyForEver . Alors pourquoi je fais ceci car en fait, c’est assez difficile de le faire marcher, peut-être même impossible pour certains.

J’y suis à peu près arrivée avec de la patience …

Parce qu’il y a eu beaucoup de mes élèves, lors des cours que j’ai menés, qui ont pas mal culpabilisé. Entre autres une jeune femme remplie de détermination et de bonne volonté, mais également dotée d’une faible confiance en elle, que j’avais mentorée pour Openclassrooms. J’avais énormément apprécié cette mission, car elle avançait vite et elle voulait réussir son année, des qualités qu’on prof/mentor ne peut qu’admirer. Elle (ainsi que d’autres) tenait hélas parfois une petite moue, et un œil triste « mais non je fais de la m…, la preuve je peux pas être autonome, je pompe des scripts par ci par là, je comprends pas pourquoi ci pas pourquoi ça, toi tu sais le faire, je voudrais coder comme toi. » … Et là, en position de lotus dans ma toge blanche, je lui répondais systématiquement « de temps et de patience tu necessiteras … ». Car ses doutes étaient normaux, je les avais traversés. Du coup j’ai eu envie de raconter l’histoire de ce site et de son affreux code qui marchait quand même.

Pour contextualiser le projet, en fin 2002 j’étais en licence pro internet, sortant d’un BTS qui n’avait rien à voir, et n’ayant à mon actif que des sites full HTML et bidouillages JS. La programmation, je n’en avais aucune notion, et la pire des surprises que cette licence m’avait faite a été de commencer par l’apprentissage de …

… JAVA …
Oui. Ils ont fait ça.

Bon bref, inutile de dire que j’avais complètement décroché cette partie-là, et que ce qui avait sauvé mon année a été le HTML, les bases de données et la communication. Dans le lot il y avait du PHP, le langage que je voulais absolument apprendre, bien que découragée par les cours. Dans ce cas, il n’y a pas de secret, il me fallait trouver un projet qui puisse à la fois me motiver et me permettre d’utiliser et comprendre PHP. A l’époque je tenais un site sur Masterboy, qui marchait plutôt bien, car il était le seul site francophone qui parlait à ce point du groupe, du coup c’est ainsi j’ai voulu sortir de ma zone de confort.

J’ai commencé par prendre un script existant pour faire une « fan-zone » dans laquelle on pouvait s’inscrire et partager dans cet espace. Puis quand j’ai fait mon stage, j’ai voulu mettre un peu plus les mains dans le cambouis, mais tout en piochant par-ci par là des bouts de code que je trouvais sur le web (sérieusement il n’y a pas mieux pour comprendre). C’est vraiment du taf de débutant, on y remarque entre autres :

  1. Les shorts tags. Bon à l’époque ça se faisait pas mal d’utiliser les shorts tags, je me souviens qu’en licence on ne nous avait pas déconseillé de les utiliser.
  2. Les multiples appels aux scripts de connexion. Au cas où le premier ne marchait pas, les autres peuvent mieux marcher, pensais-je.
  3. Douce époque où les requêtes n’étaient pas préparées. A cette époque je pensais aussi qu’il fallait faire des mysql_num_rows() après chaque requête même si on n’en avait pas besoin. On ne sait jamais qui peut le plus peut le moins, nesspa. D’ailleurs sur admin/liste.php la requête y est deux fois … on ne sait jamais, je vous dis.
  4. Ne me parlez pas de la programmation objet, je n’ai rien compris à ça.
  5. C’était bien de récupérer les variables en get du genre « num= » en $num, register_globals c’était la belle vie … puis PHP5 est arrivé et ça a changé.
  6. Gros embrouillamini sur mboy.php mais comme ça marchait, je ne me suis pas soucié de ça (j’ai hélas été longtemps adepte du « tant que ça marche casse pas les noix de coco. » à mes dépens …).
  7. Le camelCase ? Nan connais pas …
  8. L’indentation ? Mais ça marche, donc casse pas les noix de coco.
  9. Ha les die() avec des erreurs bien explicites … et puis la profusion de @ devant les fonctions au cas où il y aurait un bug mais chut …

ET SURTOUT : Je bidouillais parfois direct « en prod », surtout les bases de données. Et donc un jour, en voulant exécuter le script qui effaçait un post, bien ça m’a … TOUT effacé 🙂 j’étais sans filet, je n’avais aucun utilitaire pour sauvegarder mes bases (en même temps je ne maîtrisais à l’époque pas du tout Linux donc j’étais en mutualisé), et je n’avais même pas pensé à l’utilité d’un dump avant toute manipulation #lalose … ce qui explique le joli message en rouge sur la page d’accueil 😀 … voilà voilà …

Donc voilà ce que j’avais pondu à l’époque. Mais je m’auto-pardonne, parce que je sais que je devais commencer et on fait tous des choses moches quand on commence. Du coup comment puis-je flageller mes élèves qui sont de bonne volonté mais culpabilisent de leur rendu ?

Rendez-vous dans 10 ans pour que je voie votre super-code, les amis 😉

Comment monter un serveur d’archives PHP sans pleurer …

Mine de rien, concernant mon métier j’ai fait mes premiers pas en commençant mes études, ce qui commence à faire … un petit paquet d’années. Du coup en fait j’ai gardé (presque) toutes mes archives … ce qui n’est pas problématique quand on est en « full HTML » mais quand on passe en PHP, là c’est plus touchy. Parce que mes premiers sites sont en PHP4, en sachant qu’on se dirige vers la version 8, il y a eu pas mal de chemin depuis : renforcement de la rigueur, changements dans la conception objet, méthodes deprecated et j’en passe.

Essayez de faire marcher un site crée en 2003 sur un PHP 7 … ça m’étonnerait que vous puissiez faire quelque chose de concret. Du coup, pour faire comme moi, trouver des trucs de geek à faire en étant confiné (même si j’ai la chance de pouvoir continuer à travailler, il faut s’occuper le soir 😉 ) et faire tourner un serveur d’archives sur une Ubuntu récente, que faire ?

PHP 5.6 avec FPM

Il y a une solution pour les sites les plus récents : PHP-FPM, qui permet de faire tourner PHP en service indépendamment d’Apache (oui désolée je suis Apache-addict, question d’habitude), ce qui vous permet de pouvoir faire tourner un PHP5.6. C’est assez simple …

En premier lieu, on prépare le terrain, on se base déjà sur le fait que vous avec déjà Apache installé dans votre système.

Quelques librairies de base

Puis il vous faut ajouter le fameux repository d’Ondřej Surý, qui a fait un travail remarquable à ce sujet :

Et hop, magie !

N’oubliez pas d’ajouter les librairies MySQL au besoin. Une fois les installations bien terminées, faites un petit service status, histoire de bien vérifier que les services tournent :

Donc si vous avez un message de ce style, c’est que tout va bien 🙂

Donc là, vous pouvez faire tourner non seulement des sites tout neufs, mais également des sites que vous avez conçu il y a au moins trois-quatre ans. Il suffit après de configurer votre vhost comme suit pour switcher de version :

Vérifiez bien que les services suivants soient activés :
actions proxy_fcgi alias
Et les librairies suivantes installées pour PHP 5.6 au risque de voir une belle page blanche qui ne logge rien de pertinent :
php5.6-xml php5.6-gd php5.6-mcrypt php5.6-mysql php5.6-pdo

Et pour les versions antérieures à PHP 5.6 ?

Après, les choses se compliquent. Ne cherchez pas à installer ne serait-ce que PHP 5.2 à la mano, rien n’est compatible avec les versions actuelles d’OpenSSL et vous risquez de casser pas mal de trucs comme ça m’est arrivé. Et ainsi d’avoir à vous repalucher les installs d’Apache et OpenSSL, les joies de l’admin sys et de l’expérimentation, en somme 🙂 … – note : ce serveur n’est pas celui que j’utilise pour mes sites importants mais pour mon « bac à sable » 😉 …

Du coup j’ai opté pour un bel outil bien tendance qui a le vent en poupe chez les devOps, et qui est vraiment pratique, j’ai nommé : Docker ! J’ai finallement consenti à créer donc un conteneur qui ne servira qu’à mes plus anciens sites, et la bonne nouvelle, c’est qu’il n’y a pas tant de différences entre les dernières versions de PHP 4 et PHP 5.2 (au niveau du fait de pouvoir faire fonctionner un site en PHP 4 sur un serveur PHP 5.2, l’inverse ne sera pas forcément possible – et même fortement impossible), ce qui signifie que mes plus vieux sites tournent avec sans souci, et que je n’ai donc pas à créer de conteneurs supplémentaires (du moins, pour ma part ! ) !

Comme je suis une nana sympa, j’ai mis sur GitHub l’image que j’utilise, que vous pouvez déployer avec docker-compose, vous pouvez même définir un répertoire mysqldump pour alimenter la base directement en ligne de commande. Il y a également un PhpMyAdmin pour se simplifier la vie. Il faut juste modifier les vhosts pour que ça pointe sur vos sites à vous, qui seront accessible par défaut sur le port 8052 (80 port par défaut d’Apache et 52 comme PHP 5.2 😉 )

N’oubliez pas de préciser au besoin comme dans mon exemple, si vos extensions sont .php3, je sais ça fait super bizarre de retrouver ce genre d’extension …

Pour le plaisir, je vous montre une petite capture d’écran de ma page de garde, où je peux naviguer de site en site … c’est amusant de replonger dans le passé, comme ça :

Après, c’est un projet qui donne plein d’idées : par exemple vous voyez les petits screenshots ? Ils sont en réalité bien moches quand on passe en responsive, car dimensionnés assez petits (je pensais qu’à l’époque, ça suffisait). Bien là j’ai mis en place un process sous Puppeteer qui permet de faire des captures d’écran automatiquement ! Je pense que je vais pas mal trouver d’idées inspirantes que je vous partagerai par la suite 😉

Minetest (ou comment sortir en cette période de confinement)

Il y a dix ans à peu près, j’avais publié ce ticket :

Moi, dix ans plus tard : « Viens dans mon serveur Minetest home-made, il y a des cookies tout chauds et en plus j’ai fait une station de métro, et une maison et c’est trop cool !!! »

Cœur avec les doigts <3

Puis c’est romantique de dire à son prochain rencart : « viens me rencontrer dans le champ je t’ai cueilli des tulipes 🙂 ».

Bon, il y a dix ans, je n’avais pas acheté de Bitcoins non plus …

Fuck you, Masterboy ! (ou pourquoi je me suis à moitié désinscrite de Facebook)

Ça faisait déjà pas mal de temps que je dégraissais mon compte Facebook. J’avais déjà temporairement désactivé mon compte il fut un temps, mais il y a eu ce je ne sais quoi d’addictif qui fait qu’on replonge.

Parce que Facebook est un gouffre, un gouffre à temps, un gouffre à relations, comme tous les réseaux sociaux et que finalement, penser que des données aussi personnelles que j’ai pu envoyer nonobstant mon humeur, c’est dangereux. Donc j’ai écrémé au fur et à mesure, supprimant commentaires, likes, partages, au fil des années, même chez mes « amis ». Il fut aussi un temps où j’ajoutais des amis, comme ça, pour me rendre intéressante auprès d’inconnus qui connaissait telle ou telle personne, copain d’urbex potentiel, car oui j’ai voulu me faire un peu de pub via ce biais. Et j’ai déjà « fait le ménage » dans ma liste d’amis. Faire le ménage, sans se soucier que ceux qu’on « supprime », derrière il y a un être humain.

Je ne vous le cache pas : à chaque suppression de ma fiche dans vos profils, je voyais mon compteur décrémenter et ça me pinçait le coeur. Et ça me faisait d’autant plus mal si j’avais connu la personne. Qu’avais-je fait de mal ? dit de travers ? Mais pourquoi, et autant de questions qui me taraudaient. Car pour moi, un ajout d’une personne que je connaissais c’est une marque d’attention, retrouver avec joie mes anciens camarades de classe, ancienne phobique sociale, pour moi c’était suivre le quotidien, prendre des nouvelles et donner des miennes. Si je supprimais quelqu’un que je connaissais, c’est qu’il m’avait contrariée.

Pour tout vous dire, mon adolescence a été difficile, sur le plan relationnel. Ne sachant pas vraiment communiquer, je me suis trouvée des refuges et l’un d’eux a été la musique dance des années 90, et dans le lot, il y avait un groupe qui me faisait briller les yeux : Masterboy. J’aimais leur musique, même si c’est de la musique en boite de qualité moyenne, et je leur trouvais des têtes de gentils, je me disais qu’ils devaient être super sympas en potes ! Je collectionnais tout ce que je pouvais trouver sur eux : c’étaient comme des amis. Bien sûr il y a un équilibre fragile dans les refuges où on idéalise les gens, c’est une forme d’amour. Qui comme on dit, rend aveugle.
J’ai REMUE CIEL ET TERRE, écumé toutes les FNAC de France pour dénicher leur premier album « The Masterboy Family », introuvable, pour avoir tous leurs CD. Ma mère s’en souvient encore. Jusqu’à la création d’Amazon, qui l’avait en stock. J’ai mis 5 ans à chercher. 5 ans.
J’ai même une fois crée une carte de vœux à la main pour souhaiter l’anniversaire de Tommy.
De 2001 à 2005 j’ai tenu le site masterboy.fr.st que j’avais fait de A à Z, sauf les photos. Je crois même que c’est mes premières lignes en PHP. Mes premières lignes EN PHP les gars, c’est pour Masterboy que je les ai faites !!!!


— MES. PREMIERES. LIGNES. EN. PHP. —


C’est peut-être un détail pour vous, mais pour moi ça veut dire beaucoup …
Je n’ai jamais pu les voir en concert, mais j’avais fait des pieds et des mains en 2005 avec mon premier amour pour aller voir Klubbingman (Tommy) setter au Kinky Palace. Il y avait Enrico avec lui, je n’ai pas pu résister au fait de le prendre en photo sans lui demander, j’avais osé parler à Tommy pour lui dire bonjour et demander une photo dédicacée, mais je ne m’attendais pas à ce qu’il y ait Enrico, c’était trop d’émotions. Il s’en est rendu compte et j’ai vu à sa tête qu’il n’était pas content. ça m’a trotté dans la tête pendant des années. Je suis désolée, Enrico …

Puis il y a eu les réseaux sociaux et j’ai eu le courage de les demander en amis, tous les trois : Tommy, Trixxi et Enrico. J’étais contente car je pouvais les suivre. L’ado intérieure était ravie d’autant plus qu’il ont sorti dernièrement un nouvel album.

Puis un jour est venu le drame.
J’ai vu un ami en moins dans ma liste. C’était Trixxi.
Quelques jours après avoir reçu un mail de Tommy où il ne dit même pas bonjour en réponse à ma demande : pour les 30 ans du groupe, il prévoyaient une tournée mondiale de concerts. Sauf en France où il n’y a que Strasbourg dans le cadre d’un « event années 90 ». Si tu es du Sud, paie tes kilomètres. En plus, je déteste cette ville.

En fait j’ai trouvé ça moche. Car oui je n’osais à peine liker ou mettre des commentaires, mais c’est juste que … je n’osais pas. Ces gens-là, fut-il un temps où j’aurais pu donner ma vie pour aller les voir. J’avais même prévu d’aller à Strasbourg (reminder : je hais cette ville) en mai, avec possibilité de Backstage, mais étant donné les circonstances ce n’est plus la peine. Je ne sais pas pourquoi elle a fait ça. Quais-je dit de travers ? L’avais-je mérité après tout ce dévouement ? J’étais une fan number one ! C’est hyper dur de subir ça, ça m’a juste crevé le cœur. On ne fait pas le ménage dans son Facebook quand on est artiste !!! J’avais ouvert la boite de Pandore, les idoles portent bien leur nom.

– ach, tu fffais koi après le Konzert ?
– che vais chouer à gui dépenzera le pluz zzzzon pognon !
– ach zer gut, che peux chouer ?
– jaaaaaa gerrne, toll !
– on est touzzz drès gondeeeents $$$

Je n’ai pas supprimé mon compte, pour la bonne raison que j’en ai besoin pour mon projet AD Urbex, et pour suivre ceux qui m’intéressent en les « followant ». Alors pour ne plus subir ce pincement, j’ai supprimé tout le monde en mettant un message sur mon mur.

Mais ça ne m’étonne pas. En 1997, je me suis inscrite au Fan-Club mais je n’ai jamais rien reçu de leur part : ni carte, ni rien. Je n’ai jamais su ce qu’il s’était passé. Mais déjà, ils me décevaient. J’espère que vous avez bien profité de l’argent de mes parents pour vos Rolex ou vos Porsche !!!

Je ne suis pas en colère, je suis déçue. Et un peu à la limite du dégoût. Je pensais que ces gens avaient de la considération pour leurs fans, je me rends compte que ce n’est pas le cas. Alors je vous rends la pareille : fuck you, Masterboy.

Et ne me parlez plus de ce groupe …

Mon projet de refacto BioPHP – Partie 2 (du design pattern)

Le souci de la librairie d’origine de BioPHP, c’est son absence de design pattern. Le code d’origine prévoyait d’inclure deux systèmes de bases de données (Genbank et Swissprot en l’occurence) voire d’autres, car j’ai vu une dizaine d’autres formats.

Or le but du jeu c’est d’avoir une structure assez carrée pour pouvoir ensuite manipuler les données.

Tout se joue dans le fichier d’origine seqdb.php, je vous laisse regarder la tambouille. Dans ce cas-là, il faut surtout comprendre la logique, la garder et tout casser en même temps. A coups de massue.

La première des choses que j’ai faite, c’est compartimenter une classe par fichier, et un fichier par classe : donc on a trois fichiers, SeqDB, et des fonctions parse_swissprot et parse_id que je ramène dans une classe chacune, et que je renomme au passage car sinon on n’y comprend pas grand-chose. Je passe l’étape de « nettoyage », remplacement des fonctionnalités obsolètes, découpage du code en méthodes privées, simple, basique.

Deuxièmement, c’est d’utiliser un Iterator pour le flux des fichiers car le script réinvente la roue avec les next() et les prev().

Ensuite j’ai refactorisé en gardant l’ancienne structure de seq.php, pour arriver à comprendre petit à petit la logique, à quoi correspond chaque champ du fichier qui est envoyé. Avant le grand coup d’envoi, puisque les structures qui correspondent aux séquences vont être factorisées à leur tour, pour cela je me suis inspirée du modèle de données qui avait été proposé par l’équipe, en y mettant deux trois ajustements :

Rien de bien sorcier, c’est du MVC et du Doctrine de base.

Une fois que c’est établi, que ça marche et parse, il faut intégrer ce système au parsing des fichiers tout en permettant à l’utilisateur de lui simplifier un maximum le travail.

Il fera appel à une interface. Une seule. Et la librairie se chargera du reste. Voici comment (le travail n’est pas terminé ce qui explique pourquoi ParseSwissProt est vide mais c’est en cours) :

Diagramme réalisé avec le superbe outil PlantUML

Utiliser l’interface DatabaseInterface fera appel via l’injection de dépendances à DatabaseManager qui se charge de vérifier si le fichier existe en base, ou d’aller chercher de la donnée. Suivant le cas de figure, ce sont des factory qui seront appelées et qui joueront les aiguilleurs en appelant les services correspondants. Ces services « final class » ont une notion d’héritage sur un autre service, abstrait, ParseDbAbstractManager, qui contient l’architecture de la donnée qui sera renvoyée dans le controller de l’utilisateur.

Ce qui permet dans tous les cas de renvoyer une donnée, qui, quel que soit le schéma de départ, sera uniforme. Et ce grâce à deux design pattern : Factory et Abstract.

Du coup, si on veut ajouter une autre structure de fichier, il suffira de modifier les factory et d’ajouter un service qui sera chargé uniquement de parser la donnée. Ceci dit, je pense qu’il est même possible de passer outre la modification des factory, je dois réfléchir sur ce point.

Je crois que cette partie est la plus complexe de mon projet, car je ne suis pas familiarisée avec les bases de données textuelles propres à la bioinformatique, et le script de départ contenait pas mal de bugs. Du coup si des biologistes chevronnés constatent des bugs à l’utilisation, ils peuvent me contacter, ce sera volontiers que je procèderai aux ajustements.

Mon projet de refacto BioPHP – Partie 1

J’aime bien la biologie, depuis ma tendre enfance. Je pensais même pouvoir un jour pouvoir faire de la bioinformatique mais j’ai vite été lassée des études en fac, donc j’ai dû faire un peu une croix sur ce projet.

Then, I left to Marseille, tout ça …

Mais dernièrement, j’ai eu pas mal de remous professionnels, quitté la dernière entreprise où j’étais en CDI (plutôt rageusement). J’ai donc passé quelques mois à construire des relations avec des clients, privilégiant l’approche freelance, et j’ai également trouvé un projet perso qui puisse m’occuper et approfondir mes connaissances en Symfony. Parce que depuis Spark, j’ai horreur d’être inoccupée. Et puis quand mon chat est mort, il a fallu un échappatoire pour penser à autre chose. Et puis j’avais une revanche perso à relever (n’est-ce pas, Guillaume ?).

J’ai trouvé donc le projet BioPHP (qui est sans URL Fixe, y’a un site ici aussi), cherchant une librairie de bioinformatique en PHP, par curiosité après avoir vu que des librairies du genre existaient en GO. Et … comment dire ? Voir des 2003, dernières mises à jour en 2009 peut-être, des fonctionnalités en PHP4, du HTML, du PHP, des data mélangées dans le code. Aucun design pattern, du code spaghetti, des fonctionnalités qui se retrouvent un peu partout. Ouch. Pourtant les fonctionnalités sont intéressantes et offrent du potentiel, les algorithmes sont hyper poussés. Cette librairie a été développée par d’excellents biologistes qui ne sont pas familiarisés avec le dev. D’ailleurs en poussant la recherche, le projet est critiqué et mal noté.

L’idée de départ des gars était super sympa : intégrer une librairie pour créer des applis de bioinformatique (plutôt orientées génétique) en PHP, comme il en existe en PERL, Go, Python … Mais il est vrai qu’à l’époque, à moins de télécharger bêtement et utiliser les fonctions require, on ne pouvait pas faire grand-chose d’autre. A part peut-être les intégrer dans PEAR ou PECL, chose que je n’ai jamais faite, donc je ne connais pas le process. PHP était vraiment à l’époque le vilain petit canard du monde des langages, et c’est à ce niveau qu’on voit son évolution fulgurante. Car aujourd’hui les outils ont évolué, nous avons les frameworks, Composer, Packager, Github, les tests unitaires et fonctionnels … en un coup de « composer install », on peut intégrer une librairie.

Comment procéder quand on est face à ce genre de challenges ? A vrai dire je n’ai pas vraiment établi de plan d’action dès le départ, peut-être une mauvaise idée, mais je me suis dit que c’était un projet pour lequel j’avais tout mon temps, et le droit à l’erreur. Car ce projet pris sur mon temps perso a été commencé en février dernier. En gros voici comment je suis en train de procéder :

Fonctionnement global de la librairie est des éléments-satellites après la refacto
  1. Installation de Symfony, création de 3 bundles : AppBundle (core de l’appli, MinitoolsBundle (qui intègre des outils qui pouvaient utiliser la librairie), et DatabaseBundle, qui m’a servi de « bundle temporaire » pour créer mes classes entités, raccordées avec Doctrine (parce que franchement, la classe seq.php … non, non, et non).
  2. Premier coup de machette dans le code. Nettoyage des fonctionnalités, renommage des variables suivant leur type, restructuration des classes originales. Séparation des classes-entités de ce qui sera intégré dans des services.
  3. Mise de côté des data. D’abord j’avais pensé à les inclure en YAML dans des paramètres, très mauvaise idée. Base de données ? Je voudrais plus la réserver à l’appli, pour moi la BDD ne doit servir qu’au stockage des séquences. Reste une idée sympa, les intégrer dans une API, ce que je voulais construire depuis longtemps pour utiliser API-Platform, un outil performant qui permet de pouvoir créer facilement ses propres API Rest. Le plus : on peut créer une couche interface qui permettra de créer un adapter, et donc de changer d’API, au cas où, tout en implémentant le modèle requis. Même si le CRUD n’est pas à 100% respecté. Les données de l’API ne sont pas destinées à être modifiées, dans l’immédiat.
  4. Refacto des « Minitools » pour bien m’imprégner de la logique de ces outils, création de l’interface web en TWIG, des services correspondants : je repère les duplicatas, crée de nouveaux services qui pourront être utiles dans le core. Car à la base, ces tools devaient intégrer les fonctionnalités de BioPHP. De mon côté ils me permettent aussi de me replonger dans les fondamentaux de la biologie : qu’est-ce qu’une protéine ? un acide aminé ? un enzyme etc …
  5. Refacto en test manuel : depuis le temps, les fonctionnalités sont en friche, donc je les fais remarcher, petit à petit, en continuant le labeur de nettoyage et de refacto. Je repère ainsi les fonctionnalités qui seront intégrées dans les « Minitools ». Cette partie sera désolidarisée (renommée en BioTools, pour caler au nommage général) du package à terme, pour des raisons logiques : le multi-repo c’est le bien, je vous dis.
  6. Tests unitaires du core : maintenant que je sais que ça marche, je repasse en mode « semi-TDD » et intègre les tests unitaires. Car un gros travail de refacto m’attend : la définition des différents design patterns de AppBundle. -> je suis ici \o/ .
  7. Découpage du projet pour en créer un projet Packagist. Et certainement montée en version de Symfony, redéfinition des dépendances d’injection etc …
  8. Création des tests unitaires et fonctionnels (avec Behat) de BioTools, refacto et envoi à Packagist.

Au prochain épisode, je rentrerai plus en détails sur la refacto d’AppBundle et des design patterns choisis.

Ha oui, et sinon, toutes les infos du projet sont là … Amelaye’s BioPHP.