$Version: preneurou $
licence anti gad elmaleh: fait ce que tu veux de ce livre excepté dire
que tu l’as écrit
Aujourd’hui, avec ma femme (surtout ma femme), on a payé les factures, la situation est pas bonne. Ma fille court après la chienne qu’elle a adopté ce qui me met en rogne car on a pas le pognon pour ça, mais elle heureuse.
Belle maman, parle polonais, avec ma femme, et je peux pas me concentrer, et c’est le quotidien que j’ai quand elle est pas en vacance. Justement, elle vient de partir une semaine en vacance, j’ai pu faire un logiciel libre, ou plutôt terminer un la finitions d’un logiciel commencé il y a 12 ans : yahi.
J’ai pas eu le temps de terminer cette phrase que ma femme est venu me voir pour me demander où était l’alimentation du dernier gadget inutile qu’elle avait jeté et qu’évidemment j’avais récupéré.
Pendant que le bruit et les stimuli négatifs m’entourent, j’essaie de pas taper du pied comme j’aime faire ou me pencher d’avant en arrière écoutez du rock fort ou tout ces autres tics qui me calment, car c’est ni familialement ni socialement acceptable. Et pourtant, sans je peux pas coder.
Faire du logiciel libre quand on vit dans la vraie vie c’est pas facile.
Mais pourquoi on en fait ?
Comment ?
Qu’est-ce qui nous motive ?
Tout ça sachant que si on a trouvé un bon truc un gros va arriver avec ses gros sabots pour s’approprier le logiciel et se faire du pognon avec sur notre dos sachant que le procès pour plagiat tu peux toujours te le carrer dans le cul quand t’as pas une tune. Je sais ça m’est arrivé avec pypi-stat qui a permis à un glorieux inconnu d’en tirer la gloire et les revenus.
Ce livre, c’est à propos de tout ça.
Avant de parler du développeur parlons du cycle de vie d’un projet logiciel libre fait sous python.
Voilà un rapide aperçu :
On commence par une idée qui pourrait intéresser des gens. Il faut trouver un angle d’attaque originale soit en apportant une solution nouvelle à un problème ancien, soit dans mon cas en proposant une solution ancienne à un problème nouveau.
Parfois, soyons honnête, l’envie me prend d’être polémique et ce paquet est polémique (je reviendrais plus tard sur les motivations à faire ce paquet et sur l’idée).
On code dans son coin et normalement, étant dans des conditions parfaites « ça marche pour moi », c’est l’équivalent du savant fou qui travaille sur un coin de paillasse. C’est soyons honnête le niveau où les éditeurs professionnels s’arrêtent souvent, leur valeur ajoutée étant dans le fait qu’il est difficile pour les concurrents de déployer leur logiciel.
C’est là où les non initiés pensent que le travail est fini. Que nenni, il faut passer de la phase « ça marche chez moi», à «ça marche partout».
En python on a un mécanisme de paquet qui permet d’installer les paquets de manière uniforme avec leurs dépendances grace à la commande pip qui sert à installer des paquets
Qu’on utilise une procédure manuelle (peu recommandée) ou automatique (recommandée) il faut quand un bug apparaît avoir un bout de code qui permet de vérifier que le bug a disparu.
Ce bug doit être préférentiellement lié à une entrée de bug (issue dans le jargon utilisé tel quel en français de Paris) qui permet à un utilisateur simplement de savoir en lisant dans la doc la partie changelog (journaux de modification) si il a disparu. Et à cette résolution de bug on fait correspondre un numéro de version.
Selon les conventions, on fait correspondre des incréments de numéros mineurs aux bugfix, intermédiaires aux « bris d’API », quand le code n’est plus totalement pareil en comportement, et on garde le dernier numéro pour les changements d’API majeurs.
Une API c’est le nom qu’on donne à l’interface avec le programme et ses différentes options.
« Good Enough »© correspond à une blague du joueur du grenier sur la finition logicielle qui en français se traduit par suffisamment bon.
Quand le paquet est stable, et qu’on a une documentation suffisamment bonne pour expliquer clairement en peu de ligne ce que le code peut faire, et qu’on a résolu la plupart des bugs bloquants on est «good enough».
Pourquoi «good enough» et pas parfait ? Car sans utilisateurs vous ne verrez pas tout les bugs, et vous préférez commencer avec le maximum de bugs shootés d’une balle dans la nuque, à tout le moins pour pas être ridicule.
En général, c’est la phase où vous recherchez des béta testeurs pour valider que ça marche un peu mieux que dans votre visions des tests que vous avez, et souvent « la vraie vie » vous fait découvrir des bugs.
Ça consiste à prendre son bâton de pèlerin, faire la tournée des sites qui parlent de logiciels libres et user son peu d’estime de soi à s’exposer à différents trolls dont ceux du « c’est pas PEP8 », « t’as passé le W3C validator » et autres personnes qui jugent un logiciel sur la forme et pas sur le fond.
J’admets que c’est la phase que je déteste, et je reviendrais plus tard sur pourquoi on s’inflige cette souffrance.
La gloire c’est de la vanité, ça sert à rien, mais si son projet est reconnu dans la vie d’un loser, ça donne l’impression d’avoir achever quelque chose. Pas grand chose, mais quelque chose.
Si vous avez « bien évangélisé » où que vous êtes doué dans le domaine, vous souhaitez que votre paquet soit intégré à une distribution. Le taf de mainteneur de paquet de distribution est une charge supplémentaire consistant à gérer la relation entre la distribution (debian, BSD, windows, conda…) et celui qui FAIT le paquet. On peut faire les deux. Mais c’est compliqué.
Maintenant, un quidam peut faire pkg install yahi et profiter des fonctionnalités annoncées par l’idée que vous avez eu. C’est la fin du chemin. Le logiciel est fini.
Entre la Qualité standard entreprise (j’ai forcé le trait en disant que les entreprises livrent à la va comme je te pousse, mais pas trop) et la qualité logiciel libre il y a 10 fois d’efforts en terme de temps et de travail. Le logiciel est la partie émergée de l’iceberg.
Voilà maintenant que j’ai présenté le cycle de vie d’un logiciel libre, je vais pouvoir parler de l’humain, le loser du libre qui en fait et les défis (challenge en français de Paris) que ça représente.
Si la partie ingénierie, empaquetage du logiciel est un acte de calme et de silence reposant où l’on peut se focaliser sur bâtir quelque chose, la phase évangélisation est une putain de plaie dans le cul pour les introvertis.
Comprenez bien que contrairement à une entreprise souvent le logiciel libre est développé en mode «one man army» où pour dire en français t’as pas d’amis tu fais tout (ou presque) tout seul.
Pour ce projet, il serait faux de dire que je suis seul, mais il serait menteux de dire que j’ai pas 99% des commits sur mon dos. Et je suis heureux d’avoir un ami qui m’aide (tuck que je remercie ici).
C’est le moment où l’on est forcé de prendre une pause car on est plus maître de l’horloge.
C’est le moment parfait pour écrire un livre, et c’est depuis cette phase que j’écris ce livre, dans ce moment où le doute nous étreint face aux critiques et que l’on se demande pourquoi on fait tout ça ?
Avant de revenir à comment on le fait, dans la vraie vie et les différentes catégories de sites où l’on peut poster en fonction de l’épaisseur de sa couenne, il m’est avis qu’on ne peut pas comprendre cette partie sans comprendre les motivations personnelles, et l’auteur.
Donc, expérience stressante, je vais comme parler de moi à la 3é personne.
La vie de codeur en entreprise n’est pas rose en tout cas, celle que j’ai connu.
Dire que l’on fait de la merde est un pléonasme, l’entreprise ne semble pas avoir pour but de produire, mais de fournir des positions sociales qui reflètent plus les travers de la société.
Comme certains disent, le code est politique, il reflète dans son organisation, son développement et même son ingénierie une vision sociale, sociétale dirons certains de nos communautés.
J’abuse de terme que ne connais pas en parlant de névrose. Pour moi une névrose c’est quand la main gauche fait quelque chose que la main droite réprouve. Genre, t’es pour aider les miséreux mais tu tournes le dos au squidjie qui te demande une pièce.
Je fais parti de la première génération d’«amateur» de l’informatique, celle qui a grandi en tapant sans comprendre les listing papiers en basic d’hebdogiciel (un magazine disparu sur l’informatique).
Je vais vous gâcher la fin : taper sans comprendre sert à rien.
Mes deux véritables ouvertures à la programmation ont été car à l’époque j’avais les moyens ma calculatrice programmable (une HP48) et quelques années plus tard linux (slackware).
Et j’ai découvert quelque chose de merveilleux : LA DOCUMENTATION.
En 1993 quand on installait encore linux à coup de disquette car les CDROMs étaient pas si courant, on pouvait acheter pour pas cher des ouvrages en papier bible avec tous les HOWTO linux. Et ça, ça m’a vraiment aidé.
La qualité de documentation qui m’a permis de devenir autonome, auto-didacte je dirais, est ce que je préfère. De nos jours, pour cette raison, je préfère installer freeBSD sur mon serveur car les pages de manuels sont bien écrites et suffisantes.
La qualité « logiciel libre » est devenu le standard que je voulais atteindre au moins une fois dans ma vie. Sur ce chemin, j’ai fait de nombreux essais et pour l’instant n’ai connu que des échecs.
Vous me direz pourquoi persévérer : t’es pas doué, t’es pas doué, lâche l’affaire et arrête de perdre du temps et des points de santé mentale que tu pourrais consacrer à ta famille. Et je suis d’accord.
Néanmoins, j’arrive pas à me laisser compter « KO ». J’aimerais toujours faire du « beau code » et « en vivre ».
Suite à mon dernier taf où je me suis fait harceler (et menacer physiquement (quelle nouveauté)) je suis en dépression, et il paraît que pour sortir d’une dépression, il faut avoir « un projet ».
Donc, sans mentir, je mets mes tripes dans mon code et aussi de la critique technique, des processus et de l’ingénierie.
Vous voyez-tu (oui, j’aime pratiquer le voutoiement), c’est comme le boxeur en train de se faire rincer sur le ring, qui a un genou à terre, qui est compté par l’arbitre, mais va pas jeter l’éponge, se relever et y retourner en visant quand même de gagner son combat. Pourquoi ? Parce que je suis un teigneux.
Comme par exemple, je peux pas saquer les scrums meetings et l’hypocrisie du développement agile. Coder sans est un vrai plaisir et violer le maximum de règle de l’agile (non je ne mettrais pas de lien vers cette daube dont on peut lui faire dire ce que l’on veut) est une volonté délibérée.
Pas de user-story, pas de planning, pas de rétro-planning, de toute façon, quand on est seul ça fait pas de bon sens.
La chose important dans « logiciel libre » n’est pas tant qu’il libère son utilisateur, qu’il libère celui qui code de normes étouffantes et inutiles. Pouvoir ne pas faire comme en entreprise et délivrer est une propagande par le code contre tout ce qui ne va pas en entreprise en ce qui me concerne.
C’est un moment cathartique pour moi pour oublier tout ce qui m’empêche de livrer avec la qualité qui me sied. Et c’est pour ça que je vise le graal du paquet de distribution, pour me prouver à moi même que je ne suis pas fou et que ma critique politique de l’entreprise donne bien un résultat pertinent et valide.
Je vise l’uppercut vicieux avec la propagande par le fait dans la mâchoire des pratiques d’entreprise.
En logiciel libre, on conseille de toujours partir pour écrire un logiciel de partir d’un problème que l’on a et pour lequel on cherche une solution. De gratter là ou ça démange (scratch an itch en anglais).
Bon, là, le problème a disparu il y a 12 ans quand j’ai émigré au Canada et où j’ai tellement avancé mon salaire à mon employeur avec l’aide d’un franco que je suis tombé dans la misère.
Faîtes moi confiance, une fois que l’on tombe dans la misère c’est dur de simplement redevenir pauvre.
Je distingue le pauvre celui qui ne manque de rien mais ne peut se payer le superflu, du miséreux dont le manque de caillasse fait que sa santé se détériore, l’empêchant d’utiliser son seul capital, son corps pour devenir salarié.
Donc, quand j’étais pauvre je faisais de l’auto-hébergement, ce que je considérais être mon portfolio de sysadmin établissant ma crédibilité à être sysadmin.
Mon serveur était un centrino pas péchu délibérément ; mon crédo a toujours été de faire le max que l’on peut avec le moins possible.
Il était une fois, un jeune moi à la fac de Paris VI qui suivait après moults échecs les conseils de sa grand mère : ne cherche pas à être bon, fait juste le minimum pour passer. Grâce à ses conseils, mes notes se sont améliorées, mais il y eût dans mon histoire académique une exception ; le cours d’assembleur.
Durant ce cours, j’avais un voisin, fils d’ingénieur, qui un jour m’a expliqué que je ne pouvais pas savoir coder car je ne possédais qu’un ordinateur d’il y a 2 générations ; un 486DX2 66Mhz avec bus VLB et lui un pentium PCI 90Mhz SMP. Et que quelque part, j’étais juste une daube.
Ça m’a eût énervé.
Et j’ai décidé dans cette matière d’investir un peu d’énergie. C’est d’ailleurs comme ça que je l’ai poutré en terminant le premier notamment grâce aux TPs, en prenant le même TP que lui (manipulation de bras de robot) et en le ridiculisant avec un code largement plus simple qui marchait le jour de la livraison.
Je peux pas vous dire comment ça m’a fait du bien. Et depuis, je regarde avec circonspection les tenants du « c’est pas grave de pas savoir bien coder, la machine peut compenser ».
À l’époque pour le fun j’ai développé une librairie qui donne des propriétés d’algèbre linéaire aux dictionnaires python
Et en pratiquant la librairie, je m’étais rendu compte qu’elle était pratique pour agréger les statistiques en utilisant moins de code.
J’avais aussi la pratique des regexps nommées qui transforme le résultat d’une regexp en dictionnaire.
M’est alors venu l’idée simple il y a 12 ans de faire une librairie de regexp de journaux de serveurs, pour en agréger les statistiques et j’ai jeté sur un coin de table un serveur flask pour servir les vues par pays sur une carte, les histogrammes et les séries temporelles.
Et j’étais fier que ça tournait sur mon intel celeron sans mémoire cache.
Puis récemment, mon ami tuck m’a dit, j’aimerais faire du logiciel libre, t’as pas un projet sympa qu’on pourrait livrer ?
Vu que je suis psychotique d’après 3 de mes anciens patrons, j’ai peut être entendu des voix, mais peu importe : un truc me chagrinait sur ce projet : LE SERVEUR FLASK.
Donc, je m’ai dit livre un agrégateur de statistique de serveurs (serveur que je n’ai plus, trololol, ça aide pas à développer) en … défi … roulement de tambour … en une page HTML qui contienne tout.
Si une chose me casse les bonbons en code moderne, c’est les dépendances inutiles.
En tant que sysadmin d’entreprise j’en ai déployé des solutions énergivores et complexe basées sur de multiples couches (grafana, qui terminent dans le cloud pour faire des stats webs par agrégations.
Yahi est littéralement ma réponse personnelle à ce délire de couches complexes qui s’empile pour au final un rendu qui ne sert que la vanité. Un truc qui transforme les journaux web de base en une série de visualisation « good enough »© en UNE seule page web hébergeable sans avoir besoin d’invoquer npm, react, vue, grafana et tutti quanti.
J’avais envie de revenir à un truc de base, simple en tentant en plus en tant que développeur de ce que l’on appelle le « back » (la partie arrière d’un site web qui concerne l’authentification, l’autorisation, le rendu des bases de données, les interactions serveurs) de faire un coup de pied de la mule aux développeurs « front » (la partie visible qui attire le regard) en faisant le plus possible de code moi même sans cadriciels.
En conclusion, l’idée en faisant ce code n’était pas tant de délivrer un résultat que d’interroger les pratiques modernes de code en entreprise qui veulent que tout devienne chancre de dépendances, énergivores. Parce qu’il faut pas se leurrer, un framework, une infra cloud en plus, c’est du CO2 inutile qui est inutilement généré, et quelque part, vu que c’est inutile : ça m’énerve. Donc, j’ai mis beaucoup d’effort à tenté de faire le moins de code possible.
Ce code ne parle pas de statistiques de serveur de page web, mais de la frustration intrinsèque à faire des usines à gaz qui sont tout le contraire de pour moi ce que devrait être la programmation : être le moins dispendieux en ressources (librairies, CPU, mémoire) pour être le plus accessible à tous possible.
C’est un cri du cœur face à ma névrose d’entreprise, je fais le contraire de ce que l’on nous incite à faire pour me libérer de cette croyance que je trouve aliénante et débile.
Heureux qui comme Ulysse quitte Nausicaa non en la maudissant, mais en la bénissant
– James Joyce
Il faut savoir dans la vie garder une attitude positive face à ses expérience pénibles dit James Joyce, et préférer les regrets aux remords.
En ceci, j’ai peut être oublié que fût un temps, ma vie fût faste, j’étais même invité à me bourrer la gueule gratis à la fête de l’Huma pour parler logiciel libre entre «happy few».
Je faisais parti des gens qui étaient invités à parler du logiciel libre et participait à une magazine libre à plusieurs mains « libroscope » qui a aujourd’hui disparu faute de tune pour payer l’hébergement.
C’est un des trucs de notre époque, nos mémoires ne restent contrairement au papier que le temps et l’argent que l’on peut mettre dans le jukebox des OPEXs (coûts d’opérations/hébergement).
Tu tombes dans la misère et les 48€/ans d’hébergement + 48€ de noms de domaines ne sont plus une priorité. Libroscope a disparu du web, son aventure aussi. C’est même impressionnant pour moi qui avait écrit des articles sur le sujet que le numérique était une menace pour la mémoire d’en être témoin de première bourre.
Au moins, les livres, je les imprimes, je les relies mal et je les stocke.
Dans les choses que j’ai eu faites avec mes complices (r4f, tpi, antoine) il y a eu la direction de thèmes aux RMLL (Rencontres Mondiales du Logiciel Libres), lieux où RMS (Richard Maximus Stallman) himself m’a eu traité de démon pour avoir dit que je faisais du logiciel libre non par « convictions idéologiques » mais pour le fun.
Notre thème était « le libre au delà du logiciel ». Si vous cherchez mon nom il a été effacé sans citation après que j’ai eu déplaît à quelques obscures associations du libre. Il paraît que j’étais pour certains un « stalinien » pour d’autre « une petite bite ». Pour des gens qui respectent la propriété intellectuelle, j’eus aimé qu’ils respectent à minima le droit de paternité.
Mais, je ne maudirais pas ma déchéance de ce milieu. L’extraversion nécessaire à l’exercice n’étant pas quelque chose qui forcément m’aidait à montrer le meilleur de moi même.
Parlons des bons cotés.
Mis à part les confs où l’on était invité en Savoie, à Bourges, Metz et ailleurs (ce qui était chouette), il y avait aussi des rencontres sympa.
J’ai eu l’occasion de boire des verres avec framasoft et de rencontrer des devs du libre, comme ceux de Spip sur lequel tournait libroscope ou Aymeric Moizard (ANTISIP).
Aymeric m’a dit un truc qui m’a marqué, et m’a changé : le logiciel libre il y a ceux qui en parle, et ceux qui en font, et c’est pas les mêmes.
Je devais ma situation de « privilégié » à avoir fait parti des premiers codeurs à investir les boîtes du libres de l’époque et j’étais au centre de l’intelligentsia, là où l’influence se construisait.
Mais du point de vue développeur, même si j’avais quelques projets sous le coude pour télécharger des images de nudes sur NNTP ou d’aide à la drague sur meetic, disons que mon code était de qualité professionnel. Je n’avais pas encore franchi l’étape de devenir un « vrai dev libre ».
Une autre rencontre qui m’a marqué quand j’avais 10 ans était monsieur Souillot, qui nous a appris à faire du cyclotourisme. Il était officier de police judiciaire, mais soupirait que notre société ne nous permettait pas d’avoir plus d’une vie dans une vie.
De tout reprendre à zéro pour tenter de voir le chemin qui nous plairait.
Et consultant, vendeur de boniments était pas le truc qui me plaisait le plus. En plus j’aimais pas trop les gens que ça obligeait à fréquenter n’étant pas très versé en politique et diplomatie.
J’avais envie d’aller faire ce que je respectais : faire du logiciel libre et non plus en parler.
C’est comme ça que sur le tard, j’ai décidé d’arrêter les projets potaches, voire malaisants pour me mettre à coder sérieusement comme je pensais que ce serait bien de le faire. Un peu comme mon grand père tailleur de pierre qui n’était pas fier de son métier, mais de montrer des photos de ses « œuvres ». J’avais envie comme lui de montrer « mon art », une manière de faire différente « de la norme d’entreprise » qui me semblait plus inspirante.
Et, soyons honnête, malgré les galères, je ne le regrette pas.
Depuis 2012, date où j’ai commencé à me mettre sérieusement à faire des paquets python il y a de l’eau qui coulé sous les ponts.
Et l’on peut se demander pourquoi j’ai pris une semaine de ma vie pour faire un tunnel à finaliser un vieux projet.
J’avais des tas de vieux projets sur lesquels j’aurai pu investir du temps :
En fait, mon projet préféré c’est archery. L’utilisation de trait pour surcharger les opérateurs +, -, *, / pour les dict en python et en faire des vecteurs de fait. Ça livre de base les cosinus similarités et la notion de norme pour les dict.
Et il se trouve que yahi était une preuve de concept de l’idée.
Si j’avais mieux testé il y a 12 ans j’aurais vu qu’il manquait un fichier pour l’installer avec pip, trolololol.
Le « troll » dans yahi est que l’agrégation tient en UNE ligne qui utilise archery :
Quand j’additionne deux dictionnaires l’un à l’autre, évitant en python de vérifier que la clé éxiste, la créer et SI elle existe additionner pour chaque clés les résultats. Je suis fier d’archery, et yahi est un écrin autour d’une bête ligne de ce code.
Et ça c’est archery à l’œuvre. Les 300 lignes autour, c’est de la doc, du sucre, des « helpers » (aides) et de l’enrobage.
C’est la différence entre du code d’entreprise où finalement on valorise LA ligne de code, et le code libre où l’enrobage, la documentation, les tests importent.
Après 13 ans, j’ai vu le problème à dépendre de librairies externes ; les librairies javascript hors de celle de google pour la cartographie ne marchaient plus. Un peu comme libroscope avait disparu, mais dépendances avaient disparu aussi, et je me suis dit « crotte », t’avais même pas besoin de les mettre à jour, si seulement t’avais gardé une version figée de l’époque t’aurait pas eu ce problème.
Et puis il y avait flask aussi qui était à la mode à l’époque et dont heureusement je n’utilisais pas de module car la plupart d’entre eux n’ont pas été mis à jour, et je me suis dit, si seulement tu dépendais pas de flask tu prendrais encore moins de risques.
J’ai eu du flair pour une chose, le mode de format de journaux « Apache log combined » est devenu le standard de fait, Common Log Format pour apache et nginx les deux serveurs de page web les plus courant laissant la partie agrégateur de démo (speed_shoot) toujours fonctionnelle à ma grande surprise.
Mon ancien moi avait été sympa, me laissant un framework de test, un de doc et suffisamment de doc pour reprendre le code là où je l’avais laissé sans avoir à ni réinventer la roue, ni me replonger dans le code source.
À partir de là, j’avais mon approche dite « top down » (du haut vers le bas), la grosse image qui me permettait de conduire les petites modifications du bas vers le haut (« bottom up »). Et qui allait guider un projet que j’évaluais en temps entreprise à un mois homme et qui m’a pris pour l’instant une semaine homme en négligeant tout le reste.
Sans fin, sans budget, il n’y a pas de mode projet qui tienne. Et même en tant qu’amateur on est limité. Il est important de cadrer et estimer (en hésitant pas à sur-évaluer la charge) le temps que l’on investit et la durée que l’on a. Sinon, on court vers le cycle « burn-in » (phase maniaque), « burn out » (phase dépressive).
Il est encore plus important quand on est responsable de soi et qu’on développe solo de faire attention à sa santé mentale, et de bien se cadrer.
Le gestionnaire de version de code, est le meilleur allié du codeur.
En l’occurrence, j’ai honte j’utilise github, et non un outil moins problématique comme sourcehut.
Mis à part que microsoft travaille pour l’immigration américaine qui a des relents fascisant ou pour la défense, j’ai vécu l’épisode traumatisant en logiciel libre de l’épisode sourceforge.
Loin dans le temps, une entreprise qui se voulait bienveillante offrit les premières forges intégrées de développement. L’ancêtre de gitlab et github.
La vie y était merveilleuse, et dans notre inconscience à l’époque nous miment nos projets comme un seul homme sur cette plateforme. Quelques grognons prévinrent (GNU/savannah) que ça allait nous péter à la yeule cette mono culture, et qu’on se trouverait bien con le jour où la forge changera de licence ou de business model. Surtout, que nos projets à héberger représentaient pour ceux qui avaient comme profession l’hébergement un montant substantiel en entretien des serveurs et achat de bande passante.
Nous ne les écoutâmes pas, et l’hiver venu fûrent forts dépourvus.
La morale de cette histoire, c’est que la monoculture des outils et plate-formes surtout est fort périlleuse et est comme une épée de Damoclès au dessus de nos têtes. Souvenons nous que les iraniens et russes sont bannis de github … ce qui est fort problématique.
En une semaine de temps, je n’ai pas vu la fenêtre d’effort disponible pour migrer. Par contre, je me suis fait un serveur de backup git où je double commite mes modifications, et aussi je partage préférentiellement le lien non vers github mais pypi qui est le lieu où l’on stocke nos modules pythons finis et qui sert de base à pip.
J’ai juste un doigt d’intégration hors git pur avec github : la file de ticket.
Quand je commit avec le message fix #numéro, le commit dans github pointe vers le ticket et le ticket est fermé.
C’est la fonctionnalité que j’utilise le plus.
À chaque fois que je code ou vois un problème qui n’est pas mon tunnel de concentration actuel, je m’ouvre un ticket avec juste assez pour que ma mémoire sache de quoi ils s’agissent. Et c’est ma méthode de bourrinage dans l’approche « bottom up » bourrin : écrire des tickets et les fermer jusqu’à disparition des tickets.
Ensuite, je peux lire ce que j’ai mis dans les tickets pour faire le journal de modifications (changelog) et liés aux étiquette de versions qui correspondent (à peu près lol) aux versions que je pousse sur pypi.
C’est une approche « rinse et repeat » (répète jusqu’à plus soif) qui a fait ses preuves.
Vous pouvez voir sur les tickets que j’ai pointé qu’ils sont volontairement concis même quand ils résultent dans des gros changements.
Alors distinguons une preuve de concept (PoC) d’une preuve de concept.
Il y a la bonne PoC et la mauvaise PoC.
Il y a celle d’entreprise qui est une façade front pour un produit fini, mais en fait derrière il y a rien, c’est une PoC façade, et la PoC de codeur qui au contraire en terme de rendu est à chier mais illustre la mécanique derrière pour résoudre une tâche de conception.
Dans le cadre de yahi, à partir du moment où je me suis fixé arbitrairement pour le fun de servir tout ce qui était nécessaire en une page, il me fallait un routeur virtuel.
Évidemment, pour ça je me suis pas mis de tickets, ça aurait été trop facile pour démontrer ma cohérence.
Par contre j’ai bien commencé par faire une PoC pour le routage de niveau 1 puis une Poc pour le routage de niveau 2 à partir de là seulement une fois en confiance que j’avais shooté le chemin critique, j’ai fait un billet de blog pour (me l’) expliquer le principe du routage virtuel en javascript, pour le mettre dans un commit que j’ai mal documenté.
Pauvre moi.
Pour virer l’API google jsapi, j’ai aussi commencé par une PoC avant de faire le chantier.
L’erreur est humaine la perfection diabolique selon l’ancien proverbe.
Certes, je fais de multiples erreurs, je souffre de syndrome de gros doigts, dans ma précipitation j’étiquette mal des commit, mais à chaque incrément, même en local, je putain de test que les résultats sont conformes aux attentes avec un
pip install .. ; speed_shoot test/*log* > data.js ; yahi_all_in_one_maker data.js ; firefox aio.html
Et je vérifie manuellement que les pages sont conformes à mes attentes.
Pourquoi, parce que pour les tests visuels à part selenium je sais pas faire. Et là encore, quand on est solo en temps limité, on investit son capital temps judicieusement ; hors de question de faire des tests des rendus visuels tant qu’à minima :
Deux conditions qui ne sont pas encore remplies.
La définition de terminé avant de se lancer dans l’évangélisation est importante.
Tout bon chef de projet vous dira qu’un projet pour être « terminé » doit avoir une définition rigoureuse de « fini ».
Lol, et ça doit aussi tenir dans une enveloppe de budget.
Néanmoins, on peut aventurer une définition de fini : un projet est proche d’être fini quand on arrive à convaincre des relations ou des inconnus de l’utiliser.
Je parle même pas de l’étape post évangélisation, je parle d’avant même tenter d’évangéliser.
D’écumer des réseaux sociaux, et d’amis, d’expliquer son idée à des oreilles heureusement plus attentives que la moyenne, de rôder son discours et fignoler son « montrable » jusqu’à ce que des gens disent « hum, ça pourrait peut être éventuellement m’intéresser ».
Avant de considérer mon projet comme fini, j’ai trouvé deux amis pour l’installer, ben et tuck.
Quand cet évènement heureux est arrivé, j’ai fait une note mentale que c’était l’alpha et je me suis mis mentalement dans la peau d’être aux petits ognons et rapides quand ils rapportaient des bugs.
Faire du logiciel est loin d’être un exercice solitaire, un logiciel sans utilisateur n’est pas un logiciel, c’est une œuvre d’art sous cloche.
Une fois qu’on atteint ce stade, on a pas vraiment fini. Il faut prendre tout les retours, les intégrer et les raffiner en la doc la plus concise possible.
C’est le moment où tu DOIS chiader ton README
Il faut impérativement tenter de décrire un usage le plus concret du projet, et en prenant l’utilisateur par la main pour lui expliquer comment et pourquoi arriver au résultat que fourni le paquet.
Il ne faut pas chercher à être didactique, expliquer, développer. Au contraire, il faut réduire au maximum, vérifier chaque lignes factoriser. Tant pis si l’utilisateur ne voit pas l’idée générale (l’agrégation générique de journaux système basé sur les regexp), il faut être concret quitte à perdre de l’intérêt du logiciel.
Où se trouvent les sources ? Où se trouve la doc détaillées ? Où ouvrir un ticket.
Je le mets en premier.
Maintenant que tu as ouvert l’appétit du lecteur/utilisateur, ouvre une porte sur les possibilités, mais ne l’assomme pas.
Si ici tu te précipites : t’es mort. T’as sûrement oublié quelque chose. Laisse au moins un jour entre ta définition de « fini » et l’évangélisation, et après 24h fait manuellement le tour de tout ce que tu peux : relis tes docs, refait tourner les tests automatiques (que j’ai fourbement mis dans le setup.py), les manuels, revérifie TOUT.
Maintenant on respire, car on va passer de l’introspection protectrice à prendre la foudre d’internet sur le coin de la tronche.
Si tu es pas sûr d’être intellgient dis le en latin
C’est sensé vouloir dire soit prêt à tout.
Ci suit ma liste d’arguments préparés face aux trolls :
Si yahi utilisant une licence reconnue par le clergé du libre est « reconnu » libre, c’est pas le cas de ce livre.
La riposte est d’invoquer les 4 libertés du libres selon St Richard Maximus Stallman :
Pour que le logiciel soit libre tu fournis le lien vers le gestionnaire de version. Pour le livre, lol, c’est plus compliqué.
Dans le genre stérile cette guéguerre des éditeurs de texte me casse les couilles.
Ancien utilisateur d’emacs, actuel utilisateur de vim, je réponds que mon éditeur de code est indifféremment kate, ultraedit, notepad pour faire chier.
Fuck you all, j’ai pas le temps de tout apprendre, je le pourrais mon code serait en RPN (reverse polish notation) de la HP48.
Je sais c’est mal, je suis pas un saint, je suis un humain. J’aimerais bien te dire d’aller te faire voire, mais en tant qu’évangéliste je suis calme et reconnais ôh combien tu as raison.
J’ai ouvert un ticket et si je ne l’ai pas fait, je t’encourage à le faire. C’est l’équivalent corporate de cause toujours tu m’intéresses. Le logiciel a une intention et il suit un formalisme.
Ce n’est pas de suivre un formalisme qui le fait fonctionner mais une intention.
La forme est secondaire.
Actuellement, c’est important. Il faut guider l’utilisateur à trouver le jeu minimal de condition pour reproduire la dysfonction.
C’est probablement un bug, et ça mérite toute l’attention du développeur.
Ceci n’est pas un troll.
Tel un VRP, tu es mûr pour une phase peu glorieuse et que je n’avais pas mise initialement dans ce livre, celle de représentant de commerce.
Le commercial en informatique a une sale réputation de bonimenteux.
Là, on peut discuter de l’éthique de la logique de représentant ; faire installer à des gens ton paquet qui pensaient ne pas en avoir besoin.
Il faut faire l’équivalent du marketing sans perdre son âme de codeur (pur forcément).
Et ça, ça consiste avant la phase de « one to many » (communication au fusil à canon scié) par faire du « one to one » (communication en mode tireur d’élite) sur des forums plus ou moins morts qui te garantissent de pouvoir discuter avec des vrais gens.
Moi, mon bras mort d’internet, c’est IRC sur des forums que je trouve proche soit dans l’esprit du paquet (codage amish) soit dans le language (python) ou l’usage du paquet. Et parce que j’ai besoin d’éviter de faire de la communication fine, même si je suis bye lingual (comprendre que je ne parle plus ni un français correct, ni un anglais correct cause que mon couple et trilingue), je préfère être confortable dans mon expression.
Et j’ai un avantage sur le commercial qui a jamais fait de logiciel libre j’ai le même blues, les mêmes questions, les mêmes difficultés qui me tarabustent.
Et être ça permet de s’identifier les uns aux autres et d’avoir une qualité de communication.
Vous devez pas hésiter à reformuler toujours les mêmes choses et j’insiste en évitant d’être un reloud. Pour ça les canaux ont leurs « traditions » genre ne pas répondre sérieusement à des questions sérieuses, ou, pour être écoutés d’abord prouver une certaine dextérité en calembours.
Cette phase d’écoute s’appelle le lurking. Qui est un terme de jargon des réseaux sociaux qui est au limite synonyme de stalker (le gars tapi dans un coin qui épie avant de faire un mauvais coup). Cela demande du doigté, du savoir faire, du tact et de la délicatesse pour ne pas passer de l’un à l’autre.
C’est autant quelque chose qui requiert un talent d’ethnologue qui étudie des tribus et s’y adapte ou pas qu’un peu de gentillesse. Vous n’aurez rien des gens en étant agressifs, pousseux. Mais vous n’aurez rien non plus en étant taiseux. C’est donnant, donnant. Tu apportes, on t’apporte.
Sur une communauté/canal avec lequel vous allez interagir vous avez moults canaux/communautés que vous allez zapper. Soit parce qu’il y a trop/pas assez de traffic, soit tout simplement parce que votre ressenti est celui du malaise. Ce n’est pas grave d’éviter de se faire du mal et de respecter ses propres critères d’exposition à des interactions toxiques.
Si vous voulez être capable de causer à des gens, il faut trouver des gens qu’on apprécie, avec lesquels on va développer ou pas de l’empathie.
Et votre force en tant que dév libre, c’est d’avoir une capacité de résonance de par le vécu et les expériences qu’un VRP qui défend une marque ne peut pas avoir.
L’information que vous voulez avoir est : que vous faut-il pour écrire votre synopsis ? De même que je suis doué pour écrire des titres putaclics, je me targue de savoir écrire des synopsis pour mes logiciels quand j’y mets de l’effort.
Croyez moi, trouver un bon synopsis c’est plus difficile que d’écrire un livre.
C’est la distillation de toutes les forces de votre logiciel en un minimum de ligne. Pour ça, il faut pas hésiter à demander des retours, interroger, tester son idée … se prendre des vents. Réduire jusqu’au message magique tant attendu : « ah ton logiciel paraît intéressant, je suis éventuellement prêt si une comète s’écrase sur ma maison à l’essayer ».
Rétrospectivement, j’ai été mauvais sur un truc, j’aurais dû être un peu moins égotiste (mais c’est dur quand on est dans un tunnel de focal) et utilisé la force des réseaux pour m’enquérir de l’existant. Ça a été dans ma communication après coup mon point faible et bien connaître « la concurrence » ça aide vraiment à mieux se positionner et faire ressortir sa différence. Mais bon, je suis pas né marketeux.
En échangeant, la force que j’ai, c’est que je peux communiquer avec mes vraies couleurs de développeurs libre, car je vous le dis, on fait tous face aux mêmes problèmes, dont celui de l’insécurité émotionnelle consistant à s’exposer à la critique des autres et à la toxicité de certains milieux.
Et dans les alcôves de nos canaux, on peut partager aussi notre même inconfort à la « réificiation » la déification des outils.
Genre, Jira en lui même n’est pas le problème, c’est tout simplement que parfois le jeu d’ouvrir et fermer les tickets pour faire plaisir à des managers incompétents qui résument l’activité logicielle à cette danse est une dérive courante. Si courante que l’outil devient le symbole de la dérive elle même.
Genre la PEP8, est une bonne chose, mais le problème est que la forme en vient à primer sur le fond de la part de grammar nazi du code qui savent pas voir dans leur propre commit le code non thread safe qu’ils pissent à longueur de journée. Le B-A. B.A de l’ingénierie logicielle. Avant de regarder l’espace qui manque devant le = dans le code de l’autre, commence par nettoyer ton code des bugs de conception.
L’utilitarisme, quand les outils quels qu’ils soient deviennent une religion en eux mêmes et que des communautés souvent en entreprise, mais pas que, perdent de vue que ce qui fait la force d’un outil n’est pas l’outil lui même, mais ce que l’on en fait, comment on le manipule, de manière même hérétique. Selon l’adage « si ça marche, c’est pas stupide ». Il n’y a pas besoin d’utiliser gitlab/github au max (genre l’intégration continue) pour que ce soit un outil efficace. Même avec 20% des fonctionnalités (versionnage et gestion des tickets) on a largement de quoi faire.
Croyez pas qu’une communauté est un tout homogène où tout le monde est d’accord et que les gens vont forcément dire que j’ai raison, hein ? Ce qui importe ce ne sont pas les thèses que l’on défend, mais le chemin, le respect dans le dialogue que l’on prend à discuter. Avoir tort ou raison et moins important que la qualité de l’interaction même en défendant des points de vues trollesques que la discussion.
Pour une semaine de code intensif, une de communication « sur les résals socials », j’ai été à l’affût pendant un mois. En fait je savais pas encore que j’allais tenter de republier yahi quand je les ai rejoint, je me demandais juste comment profiter de mon temps avec un projet fun.
Mon premier projet était de concourir à un concours de python « offusqué » avec le code suivant
def ϮϮ(x, х=0): return x & (1 << х) and ϮϮ(x ^ (1 << х), ϮϮ(х)) or \
| (1 << х)
x
def ހހ(x, х=0): return ~x & (1 << х) and ހހ(x ^ (1 << х), ϮϮ(х)) or \
^ (1 << х )
x
assert all(map(lambda x: x-1 == ހހ(x), range(1, 1000)))
assert all(map(lambda x: x+1 == ϮϮ(x), range(0, 1000)))
assert all(map(lambda x: x == ϮϮ(ހހ(x)), range(1, 1000)))
print(ހހ(7))
print(ϮϮ(ހހ(8)))
Vous tentez de changer les gens, mais n’oubliez pas que dans les interactions, les gens vous changent aussi. Vous êtes pas en interaction pour utiliser des gens, mais pour échanger.
Donc, je dois un peu beaucoup aux membres de l’afpy de m’avoir amené à réaliser que j’avais envie de publier un vieux logiciel libre qui traînait et de mettre en branle tout les efforts qui ont mené à sa sortie des limbes de mes projets pas maintenus et à sa publication.
Pourvu que ton logiciel soit fait à centrale (VLC), ou dans une boîte connue (genre IBM) tu n’auras pas la même audience que le quidam.
Pas que.
Si tu es bègue, chemo, en fauteuil roulant, squidjie, une femme de la téci … tu l’auras dur comme un godemichet dans le uque.
Bref, nombre de problèmes que je n’ai pas, et pourtant JE VAIS ME PLAINDRE.
Oh !
Qu’on le veuille ou non, le logiciel libre reste une course entre les possesseurs de 486DX266 sur les pentium qui prime sur ceux qui n’ont même pas d’ordi.
Alors, oui, le coût des ordis en francs constant a baissé. Au point même qu’on parle plus de francs ou de CPC 464 mais de PC de raspberrie pi et d’euros.
Et autre chose un invariant est le « capital social » genre, si t’as fait X que tu soit né prolo ou pas on t’écouteras plus qu’un autre même si tu racontes de la merde.
Il faut aussi comprendre que la tradition tout à son honneur des rencontres libres (RMLL, pycon, et autres) se fait non plus par le bidouillage avec une unif et le crous, mais avec un protocole de reconnaissance du volontariat … qui nécessite des commanditaires (sponsors en français de Paris), commanditaires qui se voient -et c’est oh combien normal- octroyer des créneaux de conférence.
De fait, l’accès aux conférences est devenu sauf exception (kof kof FOSDEM) plus dur pour le quidam que par le passé.
Pour brûler son égo, voici ma classification des endroits ou publier par ordre de toxicité et d’audience (le plus toxique le plus d’audience) :
Le reste c’est des humains. Nan je déconne, mais ces deux là vous apporteront comparés aux brûlures engendrées relativement peu de retour.
Les endroits que je recommande :
Il vaut mieux parfois une audience plus solide locale et bienveillante qu’une mondiale qui crame les ailes.
J’ai un peu testé les anciens résals socials (fb & co) et les très nouveaux (bluesky) ; on est au niveau des stats proche de pisser dans un violon.
Bonne question.
Là je suis en attente de modération de la dépêche de l’annonce de mon paquet sur linuxfr par benoit (un gars bien).
Il y a 30 dépêches devant dont de personnes morales plus importantes, j’ai largement le temps de commencer et terminer un livre.
Imaginons, juste imaginons que je remporte la timbale.
Est-ce que cela fera disparaître magiquement les cris de ma fille que j’ignore, de la chienne que je déteste, de ma femme qui me force à des coûts inutiles et me reproche de ne pas avoir un boulot mieux payé que chômeur dans un pays qui manque de job (surtout pour les vieux qui ont perdu l’usage musculaire d’un bras) ?
Pour survivre, j’ai été déménageur, je crois pas que je vais pouvoir l’être à nouveau. Lol.
Est-ce que le logiciel libre peut me permettre comme un gagnant à la loterie de gagner un ticket pour une job, je ne dis pas bien payé, juste payé mieux qu’au SMIC ?
Nan.
Le logiciel libre n’est pas plus une méritocratie que la vraie vie. Il ne se passera rien de magique.
C’est pour ça que je n’ai investit qu’une semaine de ma vie dans, de mes vacances dans le logiciel libre comme ce beau graph github le montre
Faire du logiciel libre, excepté sur un plan de satisfaction personnel à moins que vous soyez déjà blindé de capital social (grandes école, famille connue, vu à la télé ou autre terrain de concours de grosse bite) ne vous apportera rien de plus que de la perte d’énergie.
Par contre, si je remporte la timbale, je serais en paix avec moi même, ayant comme Dr Jeckyll d’un coté du code libre fait selon mes standards et de l’autre le savoir faire du code «qualité entreprise» comme Mr Hyde.
Sur un coin d’internet paumé, qui s’efface plus vite que la mort quand les serveurs tombent, il y aura un morceau de code qui défendra mes valeurs vaniteuses et personnelles de « qualité » du code. Une partie de moi qui refuse la fatalité de la production en entreprise selon ses standards claqués au sol.
Et c’est ça être un loser. Refuser l’ordre des choses, quitte à en payer le prix, quitte à se faire rétamer, mais garder en soi la volonté de se battre, même pour des broutilles…
Donc, oui, je suis un loser, un loser du libre, mais je m’en fous.
Depuis que je pensais avoir terminé ce livre (24h) de l’eau a coulé sous les ponts, les planètes ont changé d’alignement et je me suis soumis au jugement suprême du libre : « le rôtissage d’égo ».
Le rôtissage d’égo n’a pas été aussi terrible que je l’avais appréhendé. Je dirais même que les retours ont été positifs, j’ai eu des tickets ouverts sur mes différents projets et des questions pertinentes posées.
… et je me demande ce que je fous de ma vie.
J’ai tenté comme un rocky bilbao sur le retour de coller un sucker punch de fausse garde malgré mon arthrose dans la yeule du destin et … ça a doucettement connecté. Rien pourtant qui ne mette en branle de changement dans ma vie d’ancien traumatisé (lire l’épisode précédent sherpa du code voyage au centre de la soute à charbon du web ni d’homme au foyer qui soyons honnête s’emmerde un peu dans son isolement.
Le problème de réaliser ses fantaisies c’est qu’en les réalisant on les tue.
C’est comme écrire. Et j’en viens à l’un des aspects les plus paradoxales sur cette aventure à tenter de remonter la pente en logiciel libre qui est que j’ai publié parallèlement ce livre en même temps que je le faisais (sans chercher à lier les deux). Et étonnamment, si les pouces bleus, les votes et les commentaires positifs sont une métrique de quoi que ce soit, alors j’ai fait plus impression en mettant mes gonades sur la table pour me dire écrivain.
J’ai dépensé mon budget temps logiciel libre, ma belle mère va bientôt repartir me laissant avec l’aliénation des tâches d’homme au foyer (dont je m’occupe mal), sans vraiment le temps pour refaire un tunnel nécessaire à bouriner une finition de logiciel.
Et ma fille va continuer à me dire que je ne suis rien dans notre société car je n’ai pas de travail selon les critères de ce qui se dit dans la cour de récré. Mais elle me dit qu’elle m’aime, donc c’est ok.
J’ai beau lui dire que j’ai des lecteurs et qu’« on » me reconnaît écrivain, puisqu’il y a des gens qui me lisent, mais je n’y crois pas moi même : j’ai regardé ce qu’il fallait pour avoir un livre référencé dans wikipedia qui ma foi est une encyclopédie ouverte et loin d’être réac ; c’est pas gagné.
Pour être écrivain selon les critères permissifs de wikipedia il faudrait qu’une source bien calibrée parle de mon livre, ou que je sois édité par un éditeur reconnu.
Et là, c’est non. Je suis content de ne pas avoir d’éditeur, et je n’irais pas me rôtir l’égo à soumettre mon livre à des écrivains ratés qu’on appelle critiques littéraires de journaux qui ont pignons sur rue.
Quand j’ai choisi « ni éditeurs ni maîtres » comme logo, c’était une blague potache d’ado attardé.
Maintenant que réalise qu’avoir un éditeur, une reconnaissance sociale par des maîtres à penser n’est pas une blague pour être écrivain : j’ai pas envie d’être écrivain et je suis content, voir fier d’écrire sur un coin de table entre une lessive, une machine à laver la vaisselle et de répondre à un ticket sur un de mes logiciels.
J’ai tout de suite pensé à ce mot, et ai regardé un dictionnaire ma foie de meilleure qualité que celui de l’académie française, le wiktionnaire qui ne m’a finalement rien appris de plus que le premier exemple qui venait en tête aux rédacteurs : d’être aliéné à son travail.
Faire un logiciel est-ce une vocation (Beruf) ou un travail ?
Si l’éthique protestante du capitalisme me cause, ce n’est pas uniquement qu’il était en fiche de lecture de mes cours du CNAM (cours du soir), c’est aussi que je viens d’une famille bourgeoise protestante un poil toxique sur ce genre d’aspect.
Grand père, maniaco dépressif était le premier avant que ce soit cool à faire de la science libre dans son apparte comme je fais du logiciel libre en étudiant les ratios NPK optimaux pour les plantes en hydroponiques pendant la 2é guerre mondiale. Travailler sur résoudre par la bande un problème de faim dans le monde pendant que le monde se barrait en couille fait écho avec mon crédo de publier du code que je « crois » utile.
Je suis intimement convaincu que le code d’entreprise daube qu’il est développé en mode chancre et que sa facture CO², ainsi qu’à la fin du mois sont délirantes et qu’il faut être plus sobre.
Sobre en dépendance, en infra, en fonctionnalités, en ligne de code, en complexité…
Mais ayant vécu la première bulle internet et vivant la 2é que certains appellent la bulle IA, je sais mieux que quiconque que les effets du lavage de cerveau du milieu sont tels que lutter contre les techno prêtres est non seulement risqué mais vain. On ne peut rien contre des masses de zélotes au cerveaux lavés par la propagande des techno-bros de la silicon valley. Si on peut se renfermer dans un coin et faire ce que l’on croit « bien ».
Alors, soyons honnêtes, je laisse pisser en attendant que la bulle explose et que les DAF (directeurs administratifs et financiers) se remettent à exiger que les départements informatiques justifient leurs factures rigoureusement : je ferme courageusement ma gueule et ne met pas sa dans la case aliénation (personnelle).
Aliéné à son travail, devenir étranger à soi même en essayant dans se mouler dans la définition sociale de l’égo par le travail, je crois que je touche un truc du doigt.
Alors, passons rapidement sur la tarte à la crème de l’écriture comme thérapie, c’est pas mon cas. Écrire des logiciels comme des textes, pour moi, c’est comme gueuler. Ça me fait du bien, c’est dans ma nature.
Revenons deux secondes à ce (connard) de Max Weber qui distingue le bon protestant (luthérien non dégénéré) qui a la fierté du travail et à qui l’on devrait permettre de travailler plus pour gagner plus du concon (catho si je me souviens bien selon Weber) qui veut juste vivre sa vie d’Homme simple.
Pour lui l’éthique protestant du capitalisme consiste à réduire l’humain à son Beruf (vocation) devenu métier qui de par le mérite le propulse grâce au Doigt de Dieu tenu par le « bon » patron comme membre positif de sa communauté.
Le « bon » patron, paie suffisamment le concon (catho) qui vit sa vie de famille comme un gogo pour qu’il puisse ne manquer de rien (sans pouvoir se payer le superflu).
Entre nous, en mon for intérieur, je me projette plus dans le concon que dans Mr Beruf. Et rend grâce à l’éthique prostestante du Capitalisme qu’on nous accorde le droit de vivre si on se définit pas par son métier. C’est dommage qu’on soit dans l’ère de éthique tout pour ma gueule du capitalisme. Le protestantisme semble moins pire. (Je dis bien semble et ne suis pas convaincu).
Pourtant, force est de constater que je suis à fond dans le Beruf, la vocation. Et ça m’interpelle, et c’est là où je me sens aliéné, poussé par une force étrangère à moi même à me définir d’une manière débile.
Mais cette force étrangère n’est-elle pas la pression sociale ? Celle à vouloir impérativement se définir de manière utile à la société ?
Et cette définition, celle qui apporte un nom et un prénom dans la presse, n’est-elle pas la réussite par la richesse (héritée) ou par la notoriété (tout autant héritée) ?
Je veux dire, en me faisant souffrir à faire du logiciel gratuit « utile » ne suis je pas en train de rechercher la reconnaissance sociale que je suis incapable de m’octroyer moi même ?
Et c’est là où ça m’irrite de lire Weber et sa digression sur les méthodistes et autres sectes protestantes, car je reconnais dans ma démarche et celle du logiciel libre en général ce pattern.
Ce n’est pas fondamentalement mauvais, je dirais même que cette « communauté » tente par auto-régulation de trouver une émancipation par le travail personnel et la reconnaissance par les pairs de proposer un modèle meilleur que la reconnaissance cléricale par le diplôme, car oui, pour moi le monde de l’éducation est un clergé laïque avec tous les travers que ça représente.
Mais, je peux pas m’empêcher de voir le besoin de reconnaissance comme une drogue sociale qu’on nous a engrainé étant jeune et qui nous aliène.
Pourquoi on arrive pas à sourire quand on nous dit qu’on est un inutile de la société en regardant ses proches et le fait de leur offrir un lieu de paix et d’amour comme suffisant pour être un humain réussi ?
Est-ce vraiment pour soi que l’on tente de justifier son existence ou par peur d’une société qui passe son temps à jeter l’anathème sur les inutiles et vouloir les éradiquer d’abord économiquement, puis avec la loi sur l’euthanasie j’ai bien envie de dire physiquement ?
Du haut de mon monticule où personne ne m’entends sur internet, j’ai bien envie de dire que face à la peur, faire comme mon grand père, des choses de ses 10 doigts, pendant que l’orage gronde est peut être simplement un moyen de garder sa santé mentale.
Mais ouais, je suis clairement aliéné, incapable de me définir autrement que par une fonction qui ressemble à un travail. Et je me dis que dans ma tête je suis encore un minot incapable de s’émanciper d’un carcan imposé.
Les vacances sont terminées, je ne peux plus compter sur l’éloignement de ma femme et de ma fille pour pouvoir dédier mon temps à coder, ni sur ma belle mère pour être exploitée à faire mes tâches d’homme au foyer.
Mon bras victime d’une névralgie cercivo brachiale m’interdit de reprendre un boulot de déménageur.
Certes on aurait pas suffisamment pour vivre, mais pendant 3 mois, j’aurais pu mettre du beurre dans les épinards, car, bon gré mal gré, il faut que je subvienne aux besoins de la famille et je vais arriver à la fin de la situation peu enviable qui me permettait par mon arrêt maladie de participer aux finances du foyer.
Alors, certains dans la vraie vie, m’ont dit «je suis codeur, je pourrais jamais être déménageur».
C’est sûr que la paie est pas optimale et les conditions de travail ne respirent pas le luxe.
Néanmoins c’est une époque dont je garde (ma femme moins) de bon souvenirs…
Moi ce que j’aimais c’est revenir du taffe, être claqué, ne plus y penser et m’endormir. Ma femme aurait préféré (et à l’époque j’avais pas d’enfant) que je fus plus présent.
C’était littéralement, en dehors des fois où les déménageurs se cognaient dessus entre eux, un boulot pas prise de tête en dehors de multiples galères qui me font toujours sourire.
J’ai vu du pays, je me suis marré, les collègues étaient cools et à leur manière plus bienveillants que les casses couilles des Code of Conduct des boîtes inclusives. On était tellement inclusifs qu’on avait des repris de justices, des clodos comme collègues, j’ai même été accepté tel que je suis. Et c’est à cause de ces loustics qui m’ont accepté malgré tout mes défauts que j’ai un regard très critique sur le monde informatique qui casse les couilles à prétendre en avoir à carer de la diversité, mais ne la pratique pas.
Et croyez le ou pas, c’est une expérience pro que je mets dans le top 10 de mes nombreuses expériences professionnelles dont j’ai la nostalgie.
Mais … que mon invalidité actuelle me permet plus de faire.
Alors, je regarde les offres APEC, je regarde le bullshit que je vais devoir sortir. Et si j’étais pas déprimé, lol, je le deviendrais.
À toi, lecteur, je te demande pas de me trouver un taf, je vais me débrouiller, comme avant, comme demain, je veux juste partager avec toi cette dissonance cognitive qui consiste à devoir faire la distinction entre le Beruf (la vocation) et le métier.
Ça fait bientôt 40 ans que je code, et je sais comment réussir à livrer. Apparemment, au vu des retours d’humains que je connais qui ont installé yahi, le logiciel marche comme annoncé.
Je ne suis pas totalement surpris, j’ai mis de la sueur dans l’ouvrage pour que ça marche.
Quand je code en logiciel sur mon temps libre, je code comme je pense qu’il le faudrait. Si je peux pisser du livre, plus vite que du code, c’est un peu aussi grâce à un de mes logiciels : scam avec lequel ce livre est fait.
Mais, je vais être honnête, je ne trouve pas qu’en entreprise on soit au niveau de mes exigences.
Oh oui, il y a des exigences, comme remplir ces putains de tickets Jira, faire des revues de code pour se panouiller le chibre sur pa PEP8 et la validation W3C, mais on est dans le domaine du formel. Comme si jouer des claquettes l’emportait sur le fait de coder et de livrer un truc robuste ou tout simplement utile en interaction avec les putains d’utilisateurs.
Je sais pas pour vous, mais la « muraille de Chine » qui nous est imposée avec les utilisateurs me fait chier. Moi, je veux pas interagir avec eux au travers de tickets, je préfère aller les voir, parler avec eux, et leur dire les choses francos.
Genre j’ai un ticket ouvert sur spam pour le passer en flatpack/appImage, c’est une super idée, mais le mec qui a ouvert le ticket je vais lui dire : désolé, j’ai pas le budget temps pour ton idée (j’ai une machine à laver à mettre en route).
En logiciel libre, je peux être aussi franc avec les utilisateurs que les utilisateurs le sont avec moi, sans manque de respect. En entreprise, pour se donner l’illusion que l’on va garder un client en lui farcissant le mou, on peut pas être aussi brutalement honnête. Et ça me fait chier.
Pourtant, je suis convaincu que l’honnêteté paie.