Martin Luther King’s reconstruct-gonades day #1

Une énoooorme info provenant de la nouvelle crémerie dans laquelle je bosse :

J’ai des jours fériés en plus par rapport au reste des serfs non-chômeurs ouvrier-codeurs travailleurs français !

J’ai passé des années à conspuer ce gros con de Raffarin qui nous a volé notre lundi de Pentecôte, et voilà que l’on me rend (presque au centuple) ce temps que l’on m’a volé. J’en reste baba. À noter que je continuerais tout de même de conspuer Raffarin, par solidarité envers les tra-tra-travailleurs français.

D’où sors-je ce privilège ? Ma nouvelle crémerie résulte de la fusion/absorption d’une crémerie américaine et d’une crémerie française. De manière karmatique, les Méga-Chefs et Méga-Cheffettes ont décidé d’accorder les jours fériés des deux pays à tout le monde, afin de limiter les moments où on ne peut pas échanger entre Collègues et Colléguettes !!! Que leurs noms résonnent jusqu’en haut des montagnes iridescentes de la joyeuse créativité oisive !

Et justement, ce 16 janvier a eu lieu le Martin Luther King’s day, férié pour les américains et donc pour moi aussi. Bien entendu, j’aurais aimé écrire un article le jour-même, mais je l’ai passé à faire d’autres trucs. En espérant que vous ne m’en voudrez pas.

Afin de faire écho à mes noires et cafardeuses célébrations du « Raffarin pète-gonades Memorial Day », j’ai décidé d’appeler ce jour le « Marthin Luther King’s reconstruct-gonades day ». Youpi !

Je n’ai pas la prétention d’être expert-historien de la vie de Martin Luther King. J’aurais pu en connaître quelques détails supplémentaires, car j’ai lu, dans la revue Astrapi, les épisodes d’une bande dessinée sur son histoire.

Mais ma dernière lecture de cette BD date d’il y a plus de 20 ans. Alors, j’ai un peu oublié, désolé.

Oh si attendez, je me souviens d’un truc. Une image montrant des policiers réprimant une manifestation. Ils avaient un gros camion avec un canon à eau. J’ai cru que les policiers s’en servaient pour rigoler et détendre l’atmosphère. Genre : « hey, j’ai un pistolet à eau géant, faisons une bataille d’eau et tout le monde se sentira mieux après ».

Ensuite, j’ai réalisé que c’était pas ça.

(ici, mettre une image de canon à eau durant une manifestation, pour montrer que je suis une personne engagée qui lutte contre l’oppression étatico-capitaliste).

Et sinon, cette nouvelle crémerie. Bien ou bien ?

Nouvelle crémerie dont il faudra un jour que je vous donne le nom et le sacerdoce. En attendant, je vous raconte en vrac.

Comme plein de gens de l’informatique, je suis en « full remote » (c’est comme ça qu’on dit). Je l’étais chez ConcreteWorld-🌍, mais pas full. Je revenais sur site tous les mercredis. Là je pourrais pas faire ça parce que le site en question est beaucoup plus loin : une demi-journée de train. Ça va me changer de ne voir mes Collègues et Colléguettes que environ tous les deux mois. J’appréhende un peu. On verra bien.

J’ai fait deux semaines de « onboarding » (c’est comme ça qu’on dit), sur site. Tout frais payés : bouffe, hôtel, trajets, PQ, tout je vous dis. J’ai mangé du fast-food gentrifié à m’en faire péter la caillette : tofu, bo bun, poke bowl, falafel végétarien, …

Y’a un baby-foot et une Switch dans le burlingue/open-space. C’est les clichés des boîtes super cools avec des vrais morceaux de bienveillance dedans. Je m’en tamponne un peu, mais ça ne me dérange pas que ça existe.

Je ne suis pas sûr de bien tout comprendre ce que je dois faire, ni dans quel ordre. J’improviserai, comme d’habitude.

Il n’y a pas d’outil stupide pour déclarer combien de temps on passe sur chaque tâche ! C’est une victoire personnelle résultant d’un combat qui a duré plusieurs années. J’espère juste que c’est une vraie victoire et qu’on ne va pas me sortir de derrière les fagots un google-doc naze de rapport d’activité que l’on n’aurait pas encore pensé à me montrer.

J’ai récupéré un nouvel ordinateur de Travail, comme il se doit. Le sachiez-vous ? Maintenant j’utilise Ubuntu ! Ouais bon, tout le monde s’en tamponne. Moi le premier. De toutes façons, de nos jours, tout est dans le navigateur, alors ça marche et puis c’est tout. Le seul truc qui m’embête c’est que je n’arrive pas à trouver de logiciel de dessin en pixel art aussi souple-et-solide-à-la-fois que Paint.net. Peut-être parce que j’ai pas vraiment cherché.

J’espère que OBS marchera, sinon je ne pourrais plus twitcher de Clash of Codes le jeudi. Faut que je l’installe et que je teste.

J’ai offert, en cadeau de bienvenue, l’énigme des clés inspiré de Harry Potter. Les Collègues et Colléguettes l’ont résolu, alors je leur ai donné la surprise promise : une boîte de chocolats de qualité classe et bourgeoise.

C’est pas ces clés là, mais vous voyez l’idée.

Pour postuler, j’avais caché dans mon CV un code secret en plusieurs parties. Je vous le montrerais à l’occasion. Comme ça en plus vous aurez mon CV, même si ça ne vous intéresse pas.

J’ai fait vœu de non-flatulence dans le burlingue open-space, que j’ai presque réussi à tenir les deux semaines ! Juste une fois, en screud’ (comme on dit maintenant), j’étais tout seul à côté de la cafetière qui faisait un bruit du diable, je me suis permis un petit écart. Personne n’a rien entendu grâce à la cafetière, et personne n’a rien senti car les distances de sécurité étaient respectées. Alors bon, hein, voilà.

J’ai aussi fait vœu de non-masturbation sur le lieu de Travail, que j’ai tenu ! Heureusement qu’il y avait des toilettes dans l’hôtel où je créchais, pour soulager le système.

Là maintenant, mon lieu de travail c’est aussi mon lieu d’habitation. J’ai arrêté les vœux, faut pas déconner.

Je vous laisse avec une image qui milite pour la lutte contre l’apartheid.

J’espère que le lien entre apartheid et cette image est suffisamment de mauvais goût pour vous.

Yo !

Solde de toute catharsis, avec une incarnation de retard

Comme je vous l’ai révélé à la fin de l’article précédent, j’ai à nouveau changé de crémerie. J’écrirais divers articles pour recenser tous les moments amusants et bizarres de cette incarnation professionnelle maintenant terminée. La mascaraderie corporate narrée dans l’article précédent en est déjà une partie.

Là, aujourd’hui, je n’ai pas envie de commencer cette mini-saga. Je veux régler les petites crottes de ma précédente incarnation professionnelle, qui me restent en travers de l’anus et que je voulais vous raconter à une occasion ou une autre.

Ça m’embêterait de raconter des histoires de mon boulot qui ont deux incarnations professionnelles de retard. Il faut donc que je brade tout, là maintenant.

Pour que ce soit bien clair : tout ce que je raconte dans cet article concerne la société Zarma.pro, dans laquelle je travaillais il y a plus de 7 ans. Il n’y a rien au sujet de ConcreteWorld-🌍 ni au sujet du projet POILS_PUBIENS. Je vous demanderai de ne pas confondre, parce que vraiment vraiment, ça n’a pas été les mêmes boîtes, ni la même ambiance, ni la même considération de la part des chefs.

En résumé, Zarma.pro était vraiment une boîte de merde. En détail, je vous renvoie à cet article et aux deux qui ont été écrits après. Je vais rementionner des personnes de cette époque. Pour avoir plus d’infos sur eux, consultez lesdits articles.

Crac-crac à gogo

Un collègue quelconque et une stagiaire quelconque se sont mis ensemble.

Colléguette Cuisse et Collègue Remplaçant (le mec qui m’a remplacé) se sont mis ensemble. J’ai eu vent d’anciennes histoires, mettant en scène Colléguette Cuisse et un ancien Méga-Chef qui est parti depuis. Je n’ai pas assez d’infos pour vous dire si c’était uniquement dans le but de faire progresser sa carrière, ou juste pour la beauté du sentiment de l’amour.

Ex-Collègue CDD et Collègue DashBoard se sont mariés. Je ne vous les avais pas présentés car ils ont peu d’intérêt. Pour résumer : ex-Collègue CDD prenait le bus avec moi, Collègue DashBoard a mis en place un outil interne dont tout le monde disait qu’il était pourri (sauf moi, parce que j’en avais rien à foutre).

Colléguette Hîhîhî et Collègue Tourbe se sont mis ensemble. Collègue Tourbe mérite une présentation : il a failli foutre le feu au bâtiment parce qu’il avait écrasé son mégot dans un bac à plantes. Quand il n’y a que de la terre, ça va. La tourbe, c’est humoristiquement inflammable. Rien de spectaculaire, mais il y a quand même eu un petit départ de feu qui a nécessité l’intervention des pompiers. J’ai beaucoup aimé.

Tout ça pour dire que ça baisait grave dans cette boîte. J’en suis assez surpris. Ça semble incompatible avec l’ambiance de merde et la politique d’oppression des Chefs qui régnaient. Peut-être que les gens étaient tellement désabusés que, foutus pour foutus, autant se payer une tranche de plaisir avant de sombrer définitivement dans mille ans de douleur professionnelle fataliste.

Personnellement, j’ai pas baisé.

Le monde est petit

Collègue Nounours, à force d’être maltraité parce qu’il glandouillait trop ouvertement, a fini par se barrer, ou bien se faire lourder.

Il a monté sa boîte (une boutique de soutien-gorges asymétriques démontables et customisables). J’y croyais pas une seconde. Mais quelques années plus tard, il avait quelque chose de tout à fait viable. La motivation de travailler pour lui-même lui a permis de se débarrasser de son démon de glandouille. J’ai été impressionné et admiratif.

Il emploie maintenant une petite dizaine de personnes. Il cherche des développeurs PHP pour le site de vente en ligne, alors il a eu la gentillesse de m’inviter à bouffer gratos dans un restau. Pas pour me proposer une embauche car il savait que je refuserai, mais pour que je diffuse ses offres à mes hypothétiques amis développeurs.

C’était un moment super chouette ! Je me sentais vraiment quelqu’un d’important, genre qui se fait remarquer par des chasseurs de tête et tout. On a évoqué quelques souvenirs amusants et/ou cafardeux, je lui ai parlé de mes projets de dev personnels, j’ai pris entrée-plat-dessert, on était vraiment bien.

Hé, devinez qui est maintenant embauchée dans cette charmante boutique asymétrique ? Lourdée Rosemonde ! Rappelez-vous, elle s’est fait violemment lourder de ConcreteWorld-🌍, alors qu’elle tenait avec brio le poste ô combien utile de « grande sœur de tout le monde ». Eh bien maintenant elle travaille avec Collègue Nounours. C’est cool.

À ma connaissance, ils baisent pas ensemble.

Janet Jackson, égérie de la boutique AsymBra.oO.

Et moi je suis encore vivant, tralalère !

Je vous avais décrit trois personnes : Collègue Eurod’ (qui écoute de l’eurodance), Collègue Drache-Code (qui code comme une porcasse) et Collègue Je-Sais-Tout (qui sait tout).

En vérité, c’est une seule et même personne. J’avais tellement de choses à déblaterrer sur lui que je l’ai découpé en trois blocs de personnalité distincts. J’ai bossé pendant plus de trois ans avec lui.

Lors de mon entretien de sortie avec MégaChef Storitel, celui-ci m’a dit : « je pense qu’il y a une autre raison à ton départ, que tu ne nous dis pas. Tu en as assez de faire équipe avec Travailleur Eurod’/Drache-Code/Je-Sais-Tout, car il s’impose trop ». Il avait raison.

Par le biais de Collègue Quelconque, avec qui je prenais le bus, j’ai pu avoir des nouvelles de Zarma.pro pendant encore quelque temps. Il m’a révélé que Collègue Eurod’/Drache-Code/Je-Sais-Tout avait demandé à changer de département boîtal. Après avoir chié dans tout le code du département où on bossait tous les deux, il a réalisé que plus rien n’était maintenable, alors il voulait aller chier dans le code d’un autre département. Étrangement, sa requête a été refusée.

Quelques années plus tard, il est parti de Zarma.pro. Le département où on était a agonisé quelques mois, puis a totalement été supprimé. J’en profite pour faire coucou à tous les clients qui nous avaient achetés des trucs et qui n’ont plus de maintenance !

Encore quelques années plus tard, il est mort.

Collègue Eurod’/Drache-Code/Je-Sais-Tout est décédé d’une crise cardiaque. Comme ça, paf. Il était à peine plus âgé que moi. Je suis allé à son enterrement et j’ai recroisé quelques Collègues.

J’ai eu des tas de grand-mères et de grand-pères morts, mais je n’avais pas passé beaucoup de temps avec eux. Actuellement, ce collègue est la personne décédée avec qui j’avais passé le plus de temps cumulé. Ça fait bizarre. Je repense de temps en temps à lui.

En travers de l’anus, disais-je

J’ai toujours en travers de la gueule et de l’anus le comportement de merde de Chef Random. La fois où il a tenté une attaque personnelle en disant que vu la manière dégueue dont j’arrangeais mon burlingue, ça devait être le bordel aussi dans ma maison. Et toutes ses petites remarques mesquines, quand j’avais l’outrecuidance de prendre les RTT auxquelles j’avais droit. J’arrivais dans la boîte et il me disait : « oh c’est gentil de passer nous voir ! ». À cause de ça, il m’a fait peur et après je n’osais plus prendre mes RTT (parce que je suis une chiffe molle, il faut bien le dire).

Je pensais que toutes ces petites crottes qu’il ma chié dessus allaient s’estomper progressivement. Ce n’est pas le cas. J’y repense de temps en temps et j’imagine des scènes où je me venge et où je lui fais rentrer ses crottes dans sa gorge.

Il y a 2 ans, je l’ai peut-être recroisé dans la rue. Mais il faisait sombre et le gars était de loin. On s’est regardé une seconde dans les yeux, personne n’a rien dit. Il a continué son chemin, j’ai attendu et je me suis dit : si il se retourne pour me regarder, je l’interpelle. Il s’est pas retourné, si ça trouve c’était pas lui.

Je regrette d’avoir raté cette possible occasion de lui balancer dans la gueule tout ce que je pense de lui. Je ne suis pas sûr, mais je pourrais finir par le gifler.

Comment se débarrasser de ce qui reste en travers de l’anus.

D’autres trucs en vrac

Cheffette Gothique, qui a eu un arrêt maladie de dépression assez long pendant que je bossais encore dans la boîte, s’est re-dépressionisée. À ma connaissance, elle n’a toujours pas repris le travail.

Chef Random est parti à la retraite. On s’en fout.

Maryse-Gâteau est aussi partie à la retraite. On s’en fout aussi.

Chef «  » ne cheffise plus grand chose, peut-être parce que tout le monde en avait marre de son management par la douleur. Il est maintenant « ingénieur technico-commercial » ou une connerie comme ça.

Collègue BarryWhite et Collègue Aquafootball, dont j’ai parlé dans l’article précédent et dans d’autres, proviennent de Zarma.pro. C’est moi qui les ai débauchés ! Je suis trop fier ! J’ai aussi essayé de débaucher Collègue Tourbe, mais il a préféré partir ailleurs. Ce n’est pas grave. J’ai ouï dire qu’après ce coup là, MegaChef Storitel est allé voir MegaChef En-même-temps, pour lui dire d’arrêter de débaucher ses petits esclaves personnels. Dans ta face !!

Moins d’un an après mon départ, j’ai été contacté sur LinkedIn par une recruteuse de Zarma.pro, qui m’a sorti son petit blabla générique pour m’alpaguer. Stupide boulette ! Elle n’avait même pas vérifié que je m’étais tout fraîchement éclipsé de chez eux. J’ai réussi à garder mon calme lorsque je lui ai répondu. Je m’en félicite. Manifestement, un champ résiduel de stupidité hante cette boîte, qui fait que toute personne qui y travaille se met inévitablement à faire des conneries.

Un champ de stupidité résiduelle.

Transition

Voilà, je n’ai plus rien à vous balancer au sujet de Zarma.pro. Sauf si je croise Chef Random et que je lui pète la gueule, dans ce cas je ne manquerai pas de vous en faire part.

Comme presque chaque année, je vous sors un article le presque-25 décembre, parce que c’est le moment où je suis en vacances. Mais là c’est plus que ça. Je suis entre deux incarnations professionnelles.

Bien entendu, vous aurez le récit de mes exploits désastreux et malaisants, au fur et à mesure qu’ils arriveront et que je trouverai le temps de les écrire. Mais là, tout de suite, j’ai juste envie de profiter de ce moment, alors que mon âme flotte éphémèrement dans les limbes de la sans-emploititude.

Je m’offre la relecture du roman « Monstres Invisibles », de Chuck Palahniuck (je me souviens jamais où est le H muet dans son nom). C’est glauque. C’est bien. Je me sens bizarre. Chuck Palahniuck vous fait vous sentir bizarre quel que soit votre état initial. Mais là en plus je me sentais déjà bizarre avant.

Fais-moi ça transition.
Éclair du flash.
Fais-moi ça légère inquiétude.
Éclair du flash.

Pour la première fois de ma vie, je ne change de boulot ni par contrainte géographique, ni par fuite, ni par une mutation interne que je laisse couler toute seule. Je change de boulot par choix. J’étais tout a fait bien là où j’étais avant, une occasion s’est présentée à moi, elle m’a plu, j’ai gagné les différentes épreuves d’embauche.

Pour la première fois de ma vie, je doute un peu de ma capacité à être acceptable professionnellement, car ce ne sera pas que du développement. Sans rentrer dans les détails : je serai censé définir la vision d’ensemble d’un gros machin et peut-être même gérer des freelances. Moi qui ai toujours refusé d’être Chef de quoi que ce soit, qui ai toujours considéré que Chef, c’est même pas un métier.

Je me suis toujours vanté d’un certain jean-foutisme professionel. Dans ce blog, je raconte mes efforts pour glander au boulot sans que ça se voit. Je ne souhaite pas, pour l’instant, vous dire dans quelle Entreprise je vais officier. Mais la raison pour laquelle je l’ai choisie, c’est la nature du Travail que je vais y faire et non pas d’éventuelles possibilités de glandage. Ça me fait un peu peur.

Est-ce que je finirai par devenir un type corporate et sérieux ? Est-ce que je ne risque pas de brûler l’âme de ce blog, initialement construit sur le concept de l’oisiveté ? Et mes projets persos dans tout ça ? Et Squarity ? Est-ce que j’arriverais toujours à trouver un peu de temps ici et là pour le faire avancer ? Que ferait Chuck Palahniuck à ma place ? Si je découpe quelqu’un en trois personnalités distinctes et que cette personne meurt, est-ce que je ne viens pas de la tuer deux fois supplémentaires, en plus de son décès initial ? Est-ce que je dois stalker Chef Random pour augmenter mes chances de le croiser dans la rue et de tout lui balancer dans la gueule tant qu’il est encore vivant ?

Nous verrons bien.

Medley d’événements corporates

Cet article sera bourré d’incohérences, encore plus que d’habitude, car il est inspiré de plusieurs événements. Ils se sont tous déroulés il y a plus de deux ans, ne soyez donc pas choqués s’il n’y est fait aucune référence à des masques ou des virus.

L’un de ces événements inaugure le démarrage du projet POILS_PUBIENS. À cette époque, nous n’étions que 4 :

  • Chef NightWish. Pouvoirs spéciaux : balancer des liens vers des docs en croyant que ça va automatiquement résoudre un de nos blocages techniques. Dire « on n’a pas réussi à faire telle chose » pour dire « tu n’as pas réussi à faire telle chose ».
  • Semi-Chef Lucene-Lapin. Pouvoirs spéciaux : travailler la nuit et dormir le jour, déclencher des « réunions coup-de-poing », coder des projets persos clients lourds en PHP (wtf ?). Son titre de noblesse a fluctué d’un article à l’autre : « Collègue », « Chef », etc. On va dire qu’il est Semi-Chef.
  • Collègue DocteurMaboul. Pouvoirs spéciaux : écrire de la documentation en LATEX, faire des présentations avec des images rigolotes hahaha.
  • Et moi, bien sûr.

Petit zoom sur Collègue DocteurMaboul, mon meilleur collègue de tous les temps et de toutes les boîtes où j’ai été :

  • Il gueule contre les chefs afin d’obtenir des avantages, pour lui-même et pour l’équipe, ce dont je suis incapable en tant que SuperFlamby.
  • Il lèche les bottes de ses collègues et encense le moindre petit morceau de travail produit, ce que j’aime en tant que SuperEgo.
  • Il glandouille et ne travaille que sur les sujets qui l’intéressent, au point de déformer l’espace glandique local, masquant ainsi les glanderies moins prononcées des collègues situés à proximité, ce qui m’intéresse en tant que SuperGlandeur.

C’était mon collègue-fusible. Je me disais : « tant qu’il est là, je peux glander un peu puisque de toutes façons je glanderai jamais autant que lui ». Spoiler alert : le fusible a pas tenu.

L’événement se déroule en Sicile, dans une villa isolée du monde extérieur. Nous y crécherons pendant 4 jours, l’objectif étant d’élaborer le « Business Model Canvas » du projet.

Phase 1 : on collecte des slips…

Petit rappel concernant POILS_PUBIENS : il s’agit d’une gamme d’application cosmologiques ayant pour sacerdoce de lutter contre les distortions spatio-temporelles de l’univers, sur tous les plans d’existence confiés par nos clients, afin d’empêcher un débordement de chaos. C’est un outil parmi d’autres dans ce passionant métier qu’est le maintien de la réalité, mais nous avons vocation à en faire un outil central qui recueillerait les détections de paradoxe génériques des autres outils.

Comme cet article est un medley, en même temps qu’on est 4, on est aussi une quinzaine de personne, mais l’événement va durer une seule journée et une seule nuit. La nuit sera longue…

Un nombre conséquent d’embauche a été récemment effectué, nous ne nous connaissons pas tous très bien. Nous avions donc pour consigne de préparer des petites présentations de nous-mêmes. Les collègues front-enders ont osé un Power Point ironico-dégueulasse rose fluo + WordArt arc-en-ciel + gif animés de dancing banana. Sa confection leur a pris une bonne demi-journée.

De mon côté, j’ai recensé des hobbys et des passions de chaque collègue, afin d’obtenir un joli graphe connexe (les collègues A et B aiment l’aquafootball, les collègues B et C aiment collectionner des images de nichons, etc.). J’ai ensuite créé un petit jeu dans lequel il faut retrouver toutes les associations hobby-personne. Je ne peux pas vous le montrer car il révélerait des choses trop intimes. Mais je l’ai recyclé en un jeu-hommage à Eye of the Beholder, décrit dans cet ancien article, et jouable par ici.

J’ai aussi demandé un petit créneau pour jouer un sketch de mon crû sur le langage python. Oui, on peut faire des blagues avec du code.

Patchwork narratif du matin

L’événement est situé à quelques lieues du Travail. Chef NightWish nous a laissé nous organiser pour le trajet, avec l’obligation d’arriver au plus tard à 12h30. Sous-entendu : « le matin vous bossez normalement, parce que les événements corporate faut pas en abuser. En partant vers 11h, vous serez large pour arriver à 12h30 ».

On part dès 9h. Chef NightWish tire la tronche. On fait semblant de rien et on s’éclipse.

On débarque tranquille dans la maison-villa AirBnB. La gérante nous fait visiter. Elle est un peu âgée, avec des seins énormes. Pour de vrai. C’est pas moi qui le fantasme.

Des collègues installent du matos musical (sono, guitare, piano électropsychédélique et autres fatras). Vous verrez bientôt pourquoi.

Concernant la boustifaille, nous avons chacun été affecté à un poste précis. Collègue Aquafootball, autoproclamé « roi du barbeuk », s’est proposé pour les saucisses du soir. Il se nomme ainsi car c’est un grand supporter de l’équipe locale d’aquafootball chilien, le sport populaire de la région.

J’ai personnellement opté pour la salade-tomate-mozzarella, du soir aussi. Je peux donc glander.

J’aurais aimé distiller dans cet article une ambiance glauque et effrayante : la villa sicilienne est hantée, on entend des bruits, des personnes disparaissent, on ne peut plus repartir car la voiture est en panne, etc. Mais la matière ne s’y prêtait pas. Les deux points les plus dérangeants de la maison sont :

  • la disposition des toilettes : juste à côté de la cuisine. Si ça ne tenait qu’à moi, on serait toujours à moins de 20 mètres d’une chiotte partout dans le monde. C’est important. Mais de là à avoir un accès direct aux chiottes depuis la cuisine, une limite a été franchie.
  • Une absence de moyen acceptable de faire du café. Nous disposons d’un récipient bizarre dans lequel il faut tout mettre en vrac (eau et café moulu), puis nous devons appuyer tout doucement sur un piston afin de séparer le café liquide du café moulu. Ça ne marche pas. Nous mâcherons du café pendant 4 jours.

On pose notre fatras informatique dans la salle principale. Entre temps, Chef NightWish est arrivé. Comme il s’y croit à fond, il annonce avec un corporatisme empreint d’ironie que cette pièce sera la « War Room ».

Collègue Aquafootball teste la tireuse à bière. Je discute du projet annexe Arcanciel avec Stagiaire SuperCSS.

Le projet annexe Arcanciel est un truc de dingue, développé en partenariat avec la Zuzu Academy (l’université gratuite de Marc Zuckerberg). Comme vous le savez, l’œil humain ne distingue pas toutes les couleurs, or certains bugs de réalité ne se voient que sur certaines longueurs d’onde chromatique bien spécifiques. Arcanciel est un framework javascript permettant de convertir les couleurs d’un type d’œil vers un autre. Vous pouvez afficher une image telle que vue par un daltonien deutéranope, ou bien vue par un chien qui veut savoir comment voient les yeux d’une mante de mer, etc. C’est énormément de code, avec des calculs ultra-optimisés.

Tout le monde est là, c’est le moment de montrer notre surprise à Chef NightWish, car c’est son anniversaire ! Nous lui offrons une interprétation de la chanson « Something Wrong » du groupe islandais Bang Gang, avec des paroles personnalisées pour lui. Il a une petite larmette pendant notre prestation.

Bang Gang : meilleur groupe du monde, meilleur nom de groupe du monde, va te faire foutre la SEO.

C’est Semi-Chef Lucene-Lapin qui s’est occupé des paroles. Il avait inévitablement déclenché une « réunion-coup-de-poing » pour en faire part au reste de l’équipe, avec réservation de salle et tout. J’étais un peu gêné. Des gens passaient dans le couloir et voyaient à travers la vitre un texte humoristique projeté sur grand écran.

Ça lui avait pris deux demi-nuits. Ce mec peut travailler des nuits entières sur des documents sérieux, puis d’autres nuits entières sur des trucs complètement aléatoires tels que des énigmes amusantes proposées par des collègues (pour une fois c’était pas moi). La journée, il m’appelle pour me narrer ce qu’il a fait de ses nuits (le sérieux ET l’aléatoire). Toutes ces heures passées au téléphone… Je les rentabilise en cassant des amandes, le téléphone sur l’oreille. J’en ai des pleines boîtes à chaussures, que je cueille chaque année sur les amandiers poussant autour de chez moi.

Et donc, cette performance chantatoire est la raison pour laquelle nous étions partis en avance. Nous devions installer le matos sans que Chef NightWish ne nous voit. Je ne suis pas sûr qu’il l’ait réalisé. Pour tous les domaines qu’il connait un minimum (entre autres, l’informatique et la musique), Chef NightWish croit systématiquement que chaque action « ne prendra pas plus de 5 minutes ». On retrouve ce caractère chez beaucoup de chefs.

De plus, il faut bien l’avouer, l’installation n’a pas pris énormément de temps. En tout cas, c’est sûr que ça ne nécessitait pas la contribution de tout le monde, puisque j’ai glandé pendant que d’autres s’y attelaient.

Pour finir cette matinée : repas classe et équilibré préparé avec amour par les collègues assignés à la bouffe du midi.

Moi pendant que les autres travaillaient.

Gloubiboulga récitatoire de l’après-midi

Séance de réflexion sur le Business Model Canvas et ses schémas annexes : Customer Journey Map, Economic Canvas, Environmental Canvas, Disruptifier Bullshit Canvas, etc. Vous connaissez le principe : on écrit un truc sur un post-it et on le colle sur un des schémas.

J’adore les pitreries corporate, mais j’ai beaucoup de mal à y garder mon sérieux. J’ai des idées de post-it que je trouve pertinentes, mais je ne peux m’empêcher de les présenter de manière débile. Par exemple, j’écris : « les lois étendues de conservation de la réalité physique, on n’y comprend rien ! ». Chef NightWish est obligé de dédébiliser le propos et de le remplacer par : « manque de connaissance théorique de l’équipe technique ». C’est pas très gentil de ma part et ça ralentit l’avancée de la réflexion, mais moi je me marre.

Le groupe de travail voisin, dans lequel officient Semi-Chef Lucene-Lapin et Collègue Aquafootball, a adopté la technique du pastis-post-it. Un post-it collé, un pastis, un post-it collé, un pastis, etc.

De manière prévisible, la War Room devient un océan de post-its aux couleurs criardes et entropiques.

Chef NightWish : « Nous ne devons pas hésiter à remettre en question ou casser des choses établies depuis des années. En gros : soyez punks ! ».

Des post-its punks.

Il nous donne comme exemple Elon Musk avec sa société SpaceX. La NASA imposait une gargantuesque liste d’exigences pour je-ne-sais-quel outil de navigation. Une seule entreprise au monde était capable de les fabriquer et les vendait à un prix stratosphérique (amusant pour un machin censé aller dans l’espace). Mumusk a pris un iPad, a (fait) effectuer une gargantuesque liste de tests pour prouver qu’il répondait aux exigences exigées, et c’est passé. Comme quoi il existe des appareils qui se vendent à un prix encore plus stratosphérique que le prix déjà bien stratosphérique d’un iPad.

Je reprécise que les événements corporates narrés ici datent de plusieurs années, Mumusk avait encore à peu près la cote auprès de la population humaine, Twitter gazouillait innocemment des propos d’une toxicité variable.

Vient alors le moment de faire nos auto-présentations. L’horrible & glorieux Power Point fait sensation. Collègue Aquafootball, alcoolisé par les bières et le pastis-post-it, commence à raconter n’importe quoi de plus en plus fort. Semi-Chef Lucene-Lapin trouve notre show très goleri, ha ha ha, mais aurait surtout souhaité une liste de nos compétences techniques : qui sait faire du python, du front-end, du big data, de la colorimétrie karmagraphique, … Ah oui, c’eut été intéressant.

Petite pause autorisée, avant de se remettre en groupe de travail pour préparer la restitution finale de nos post-its. Quelques personnes jouent au jeu des hobbys. Cool. Collègue DocteurMaboul entraine son groupe (dont moi) dans la méga-piscine de la maison. Le temps de pause file comme le vent. On revient à l’arrache, plus ou moins rhabillés et les cheveux dégoulinants. La restitution risque d’être un peu légère.

Dans une autre réalité, Chef NightWish nous présente le « Manifeste de la Bienveillance de POILS_PUBIENS ». Sur ce document est gravé en lettre de feu que nous devons être gentil, ne pas nous pourrir mutuellement et ne pas répéter ce que dit un collègue en prenant une voix de débile pour se moquer. Collègue BarryWhite met en doute la réelle utilité d’un tel texte. Chef NightWish répond que dans d’autres boîtes, il a vécu des moments où des ardeurs testostéronesques inter-collègues furent désamorcées grâce à quelqu’un qui montra du doigt le manifeste local placardé au mur.

Collègue BarryWhite continue d’émettre des doutes. Il est à la limite de se foutre de la gueule de Chef NightWish. Je lui réponds que dans le respect du Manifeste, on ne doit pas se foutre de la gueule des autres, y compris au sujet du Manifeste lui-même.

Collègue BarryWhite se nomme ainsi car il a le physique inverse de BarryWhite, tout en ayant sa voix. C’est assez troublant.

Le Manifeste.

Dans une autre réalité, un tournoi de paintball est organisé. Le gagnant remportera un coussin-peluche à l’effigie du logo de notre projet. Je suis l’un des plus mauvais, dans l’équipe la plus mauvaise. Ça me rappelle une partie de Laser Quest que j’avais disputé contre des gamins de 8 ans. J’étais arrivé avant-dernier. Évidemment, si ça avait été un tournoi de Clash of Codes, je leur aurai tous dévissé la tronche.

Malgré tout, je reste fair-play, en particulier lorsqu’une personne d’une autre équipe se vautre devant moi telle une otarie bourrée à la bière et se flingue le genou. Je m’enquiert de son état et ne lui tire pas dessus à bout portant. J’ai dû me faire violence, car cette personne est une autre fan d’aquafootball chilien, mais de type reloue. Elle arrête pas de fanfaronner chaque fois que son équipe gagne. Insupportable.

Chef NightWish n’est pas dans l’équipe la plus mauvaise, mais il est le plus mauvais. Ça finit par le gonfler d’arriver à rien. Dans les dernières minutes, il court dans tous les sens en rafalant aléatoirement et en insultant les mères de tout le monde.

Il est un peu essouflé et un peu rouge au moment de remettre le trophée à la personne gagnante (je ne sais plus qui c’est).

Saurez-vous deviner ce que représente ce trophée-coussin-peluche ?

Dans l’autre-autre réalité, notre restitution se déroule tant bien que mal et notre ardent travail est achevé. Les schémas dûment post-ités doivent maintenant nous permettre de déterminer notre Business Model. Chef NightWish énonce en quelques phrases le fonctionnement du projet et la manière dont il permettra de générer des clients et des soussous. On est tous bluffés : c’est clair, ça semble réaliste et c’est sorti naturellement. Une sorte de magie corporato-cognitive s’est opérée, notre travail de pastis-post-it-bullsh-it n’était rien d’autre qu’une préparation pour obtenir ces phrases qui nous sont maintenant évidentes.

Je pense que c’est des conneries et que Chef NightWish a tout fomenté à l’avance. Ces fameuses phrases étaient déjà prêtes bien avant le début de l’événement. Si je les ais instantanément approuvées, c’est surtout par fainéantise et par facilité. Dois-je rappeler que je préfère sauter dans une piscine, boire de la bière et réaliser des mini-jeux plutôt que de réfléchir à la proposition de valeur d’une start-up que l’on souhaiterait à haut potentiel de licornitude ?

Bachouillis racontariens du soir + lendemain

Réaffectation des tâches pour la préparation de la bouffe du soir, car Collègue Aquafootball est étrangement introuvable. Je me vois octroyé, d’autorité, le titre de « prince régent du barbeuk ». Je ne suis pas doué pour ce genre d’activité adulte et virile, je crame 73% des saucisses, ça aurait pu être pire.

Un québecois spawne de nul part, probablement un locataire comme nous. Comment a-t-il fait le trajet du Québec jusqu’à cette villa paumée en Sicile sans qu’on le voit arriver ? On ne le saura jamais. Il décline poliment notre invitation à partager notre repas, car il a déjà mangé. Mais il accepte l’invitation à boire et à discuter. Il a inévitablement un accent rigolo.

Je gratte les pourcentages de saucisse non-cramés et tente de les ingérer, car je n’aime pas gâcher la nourriture. Une voix proférant des propos aléatoires me fait relever la tête de mon assiette. Collègue Aquafootball a réapparu. Il parle avec le québecois, très fort et en anglais. Plusieurs personnes lui disent à plusieurs reprises que ce natif de la Belle Province parle et comprend le français, ce dont Collègue Aquafootball n’a cure. Un tel comportement peut-il être qualifié de « punk » ?

Il est 2 heures du matin, c’est le moment de sortir mon ordinateur et de proposer mon sketch sur le python. Dans un futur indéterminé, je vous ferais un article de blog pour vous le montrer. En attendant, voici un avant-goût : ouvrez une console python, écrivez None is not False et appuyez sur Entrée. Lolilol !

Dans tous les événements corporate dont cet article est le medley, je présente ce sketch. Chef NightWish, qui y a déjà assisté, me fait remarquer que la blague « None is not False », je finirai par ne plus pouvoir l’utiliser. Sous-entendu : « ton sketch, c’est du réchauffé ». Ouais, et alors ? T’as mieux à proposer ? Viens nous faire un sketch sur les Business Model Canvas ! (C’est même pas ironique).

Semi-Chef Lucene-Lapin tente de mettre en défaut mes connaissances, en me questionnant sur la manière dont les nombres décimaux sont gérés en python. Il me suggère de tester des opérations mathématiques donnant des résultats faux à cause des approximations. C’est censé me surprendre.

Réponse : les nombres décimaux sont gérés pareil que dans la plupart des autres langages, c’est à dire avec la norme IEEE 754 (mais toujours en précision « double », 64 bits). Sauf que je maîtrise mal ces histoires de valeur approchées et ne parviens pas à lui répondre. Je considère que Semi-Chef Lucene-Lapin a mis en défaut mes connaissances sur la norme IEEE 754, mais pas sur le python.

Je me permets de lui montrer que s’il veut des valeurs plus exactes, avec une précision configurable et théoriquement infinie, il suffit d’utiliser le module « decimal », de la librairie standard du python. Merci, au revoir.

Le sketch terminé, chacun retourne à des occupations plus ou moins valorisantes : boisson, katastro-karaoké avec le matos de musique, discussion sur la vie, …

On re-perd Collègue Aquafootball. On le re-retrouve endormi dans un fossé, serrant dans ses bras une bouteille de whisky aromatisé au sirop d’érable. Stagiaire SuperCSS le traine jusque dans la villa et le pose en vrac sur un canapé. La plupart des gens partent se coucher. Nous ne sommes plus que quatre : Semi-Chef Lucene-Lapin, Collègue DocteurMaboul, Stagiaire SuperCSS et moi.

Collègue DocteurMaboul sort un petit carré de shit et commence à rouler. Ça fait plus de quinze ans que je n’avais pas fumé. Je le remercie pour ce petit moment de nostalgie qui me remémore ma vie étudiante et post-étudiante. À l’époque où ce récit se déroule, le CBD n’était pas encore à la mode. Cela dit j’ai jamais testé ce truc.

Dans une autre réalité, ce n’est pas la dernière nuit de l’événement, et le Business Model Canvas n’est pas fini. Nous restons à rédiger des post-its supplémentaires. C’est clairement pas la même réalité que celle avec le shit.

Dans la réalité précédente, nous discutons de l’avenir du projet jusqu’à 4 heures du matin.

Les deux réalités se rejoignent lorsqu’on va tous se coucher. Sauf pour Semi-Chef Lucene-Lapin, qui utilise son pouvoir spécial et continue de rédiger des post-its tout seul.

Le lendemain, les gens se réveillent à des heures non centrées et non normées. Nous rangeons le bordel : ordinateurs, bouteilles vides, tireuses à bière, morceaux de saucisse, matériel de musique, fins de pétards, post-its, …

Après un vote à l’unanimité, nous annulons les résultats du tournoi de paintball. La personne ayant gagné accepte de bon cœur de rendre le trophée-coussin-peluche-poils-pubiens (de toutes façons je savais même plus qui c’était), afin de le remettre solennellement et officiellement à Collègue Aquafootball, pour l’ensemble de sa prestation de la veille.

Covoiturage pour rentrer, dans la voiture de Collègue BarryWhite. Nous mettons plus de temps qu’à l’aller, car nous devons faire une pause tous les 20 kilomètres pour laisser vomir Collègue Aquafootball.

Durant l’une de ces sessions « dégobillage », nous sommes arrêtés dans un chemin d’entrée de maison. Un vieux affublé d’une casquette Spiderman s’approche de nous. On lui explique pourquoi on est là, qu’on est désolé et qu’on va très vite repartir. Le vieux ne dit rien et reste à nous regarder jusqu’à ce qu’on parte. C’était pas par méchanceté ni par crainte qu’on soit des cambrioleurs gérontophiles. C’est juste qu’il était très vieux et n’avait plus la faculté de parler. Un moment étrange, hors du temps.

Collègue Aquafootball perdu dans son vomi et le vieux Spiderman bizarre (allégorie).

Épilogue

Le dérapage alcoolisé de Collègue Aquafootball restera dans les esprits et sera diffusé, répété et mentionné durant plusieurs mois. Le pauvre ne méritait pas ça, d’autant plus que c’était exceptionnel (dans tous les sens du terme). Ce n’est pas un déglingopathe habitué du binge partying. Ça avait fait pareil avec Chef Peyotl : il a eu un seul écart malheureux et les gens en reparlaient encore des années après. C’est pourquoi, j’essaye pour ma part de ne pas trop faire circuler ce genre d’embarrassantes sorties de route. Sauf que je les écris et les immortalise dans ce blog. Zut…

Collègue BarryWhite deviendra un early adopter de Squarity. C’est grâce à des gens comme lui si je continue d’avoir le courage d’avancer ce pojet personnel. Ça avance juste très lentement.

Le coussin-peluche deviendra la mascotte de la boîte, trônant sur le burlingue de Collègue Aquafootball. Nous nous amuserons régulièrement à nous le lancer mutuellement à la tronche.

Stagiaire SuperCSS, armé d’un magnum de vodka, consacrera deux week-ends au projet annexe Arcanciel. Son travail rendra caduc et inutile tout le code déjà produit par la Zuzu Academy. Ce que la plupart des gens ignorent (mais pas lui), c’est que les codes couleurs CSS peuvent contenir de nombreuses valeurs hexadécimales. Les 3 premières indiquent les quantités de rouge, de vert et de bleu, les suivantes décrivent les différentes couleurs visibles par d’autres types de cônes et de bâtonnets présents dans différents types d’organes visuels, aussi bien humains que animaux.

color: #AABBCC1122334455667788990000111111

Collègue DocteurMaboul se fera intégralement virer comme un malpropre. Licenciement pour truanderie au travail et glanderie aggravée, sans indemnité ni pot de départ. C’était mon gonfleur d’égo, mon aggro à chefs, mon meilleur collègue de tous les temps. Il ne pouvait pas durer éternellement. Je le remercie de m’avoir permis de croiser son chemin à lui, iridescent et éthéré.

Semi-Chef Lucene-Lapin, armé d’un Jéroboam de Ricard, tentera de fusionner le PHP de Drupal avec le PHP de Symfony en une ultime application client lourd, mais échouera à cause de la mauvaise gestion des encodages de caractères dans le PHP, qui effacera tous les points-virgules de son code source. Son rythme de travail-sommeil incompatible avec le reste de l’humanité agacera la hiérarchie, qui le semi-placardisera en abaissant son contrat de travail aux trois cinquièmes.

Chef Nightwish démissionnera pour aller brouter de l’herbe plus verte ailleurs. Il fera un pot de départ comme il se doit, que je rentabiliserai un max (fondue savoyarde).

Des quatre fondateurs originaux du projet POILS_PUBIENS, il n’en reste maintenant plus que 1,6 (suite au passage aux trois-cinquième de Semi-Chef Lucene-Lapin). Ce dernier se rapproche doucement de l’âge de la retraite…

Sauf que bientôt, il ne restera plus que 0,6 fondateurs. Si vous avez lu cet article jusqu’ici, vous méritez bien une petite info exclusive : je vais très prochainement changer de crémerie ! Je ne manquerai pas de vous écrire une palanquée d’articles récapitulant les divers moments intéressants et étranges de cette présente incarnation professionnelle. Cependant, je dois vous avertir qu’il y aura moins de matière que ma série d’articles revanchards et cathartiques que j’avais écris en fuyant Zarma.pro.

À bientôt !

Ça c’est pas moi, c’est Collègue DocteurMaboul

Un peu de maintenance blogaire

Pouik pouik tout le monde !

J’ai réparé et réactualisé quelques trucs :

  • Dans mon article phare « les chansons pipi-caca de notre enfance » , j’ai corrigé les liens vers les fichiers mp3. Vous pouvez à nouveau cliquer sur les boutons Play pour écouter mes interprétations de ces perles culturelles.
  • J’ai bien évidemment ajouté Squarity dans cette page de regroupement.
  • Dans l’article expliquant pourquoi les liens sont bizarres, j’ai ajouté un paragraphe au début, annonçant que je laisse tomber les tentatives de monétisation de ce blog. Ça avait fonctionné un tout petit au début, puis ça a très vite fait flop.
  • Quelques autres résurrection de liens morts ici et là.

Je voulais aussi réorganiser les catégories, car c’est un beau bazar. Mais il faudrait que je repasse sur tous les articles pour tous les recatégoriser. Je le ferais plus tard, ça prendra un certain temps et ça risque de me sur-nostalgiquifier l’esprit, ce qui n’aide pas toujours à aller de l’avant.

Courbes tiktokiennes complotistes

La jolie dame du jour se nomme Tallyberry. Comme la totalité des personnes hypes et actuelles, elle est sur Tiktok. Dépêchez-vous de scraper ses vidéos avant que la fausse puritanerie sécuritaire des réseaux sociaux ne la banisse.

À moins que ce ne soit pas de la puritanerie…

Un pote m’a informé d’un complot mondial associé à Tiktok. Ce réseau social chinois est conçu pour privilégier sur le territoire de la Chine du contenu qui rend intelligent (tutoriels, conférences, cours en ligne, …) et pour privilégier dans le reste du monde du contenu qui rend stupide.

C’est pour cette raison que les femmes avec de belles rondeurs se font régulièrement fermer leurs compte sur Tiktok. Parce que regarder des seins et des fesses, ça rend intelligent, or je n’habite pas en Chine.

S’il te plaît, glorieux et gentil peuple de Chine, pourrais-tu nous laisser au moins les jolies filles ? Certes, on sera moins stupide, mais vous avez encore beaucoup de marge, car on vous laisse les conférences et les cours, en gage de notre bonne volonté.

Pouet !

Pour le mois prochain, j’aurais peut-être un truc à vous annoncer. Ou pas. Je ne peux rien révéler maintenant. Il est possible que je ne puisse rien révéler plus tard et que je n’ai finalement rien à vous annoncer. On ne sait pas. Ce paragraphe ne sert à rien.

Je vais finir par une phrase de fin à la mode des humoristes à la mode : « c’est tout pour moi, c’était Réchèr ! »

(Je déteste l’humour, ça m’énèrve)

La road-map de Squarity est là !

Article à l’arrache, qui est un copié-collé du message que j’ai mis sur le Discord de Squarity. Mais j’ai le droit, vu que j’ai réussi à sortir cette fameuse road-map.

Allez ici : http://squarity.fr/ et faites un Ctrl-F5. En haut à gauche, à côté des liens vers les repository github, se trouve le lien vers la roadmap. Il vous mène à une page pleine de petits carrés colorés, chacun représentant une fonctionnalité prévue (pour une date indéterminée). Cliquez sur les carrés pour avoir des détails.

Pour les personnes voulant lire tous ces détails, de manière plus simple et linéaire, allez ici : https://github.com/darkrecher/squarity-doc/blob/master/road_map.md .

Certains carrés sont censés afficher une gif animé de « vision » : un hypothétique screenshot montrant des fonctionnalités spécifiques. Pour l’instant, aucune de ces gifs n’est prête. Comme quoi, elle est pas si finie que ça, cette roadmap. J’y travaille.

Cette mise à jour tombe à point nommé pour fêter les 2 ans de Squarity ! Et ça mérite bien …

Une petite rétrospective

Tout d’abord, la vraie date d’anniversaire est le 17 septembre. On n’est plus à ça près. J’essayerais de me recaler sur le 17 l’année prochaine.

Cette année, je n’ai pas foutu grand-chose : juste quelques jeux et cette belle road-map.

Il est souvent difficile de se dégager du temps libre pour des projets perso. À cause du travail salarié, du quotidien à quotidieniser, du corps qui fatigue et qui veut tout le temps dormir, etc.

De plus, j’ai dépensé beaucoup de ce temps libre dans un autre projet : la découverte des NFT et des jeux Play-to-Earn, en particulier avec la crypto-monnaie « WAX ».

Je n’ai pas pris beaucoup de risques, mais je ne suis pas sûr qu’on puisse considérer que j’ai gagné de l’argent. J’ai démarré avec environ 200 WAX. J’en ai maintenant 250 + plein de petits NFTs dont la valeur totale est actuellement estimée à 150 WAX. Je m’en suis plutôt bien sorti. Sauf que quand j’ai acheté mes 200 WAX, le cours était à 60 centimes d’euro, et il est maintenant à 10 centimes. Oups…

C’est pas grave du tout, je n’ai pas investi plus que ce que je pouvais me permettre de perdre. En revanche, j’ai perdu énormément de temps à analyser des jeux, surveiller des places de marché, cliquer toutes les 4 heures sur un tamagotchi-panda pour l’envoyer en aventure, etc. C’était amusant, mais je dois diminuer le temps et l’énergie que je consacre à cette activité. Les jeux actuels en play-to-earn ne valent vraiment pas grand-chose en ce qui concerne le plaisir de jeu et le divertissement.

Remerciements

Je remercie les mêmes personnes que l’année dernière, pour leurs encouragements et leurs passages réguliers sur le serveur Discord. Ça me fait très plaisir et ça m’aide à continuer, alors merci !

Je remercie également Hundraw , qui m’a énormément aidé à écrire le CSS de la page de roadmap. Merci merci !

Dans un futur (espéré) proche

Voici ce que j’ai prévu :

  • Dessiner ces fameuses gif animées,
  • Réaliser quelques tâches du Trello de Squarity, histoire de le nettoyer un peu,
  • Démarrer la tâche de road-map « Améliorer le point d’entrée »,
  • Faire une vraie API avec des vraies structures de données,
  • Ce sera déjà pas mal !

Voilà. On va continuer d’avancer comme ça, de manière bancale et anarchique, et surtout de manière très lente. Mais nous ne nous arrêterons jamais !

Et pour finir, voici des ronds

Miss Pamelia, sur tik-tok. Si elle vous plaît, je vous invite à télécharger assez vite ses vidéos (il y a des tonnes de downloader très simple à utiliser). Régulièrement, je trouve des belles femmes sur tik-tok, dont le compte se trouve mystérieusement fermé au bout de quelques semaines, juste parce qu’elles ont laissé dépasser un fragment de nichon. C’est scandaleux. En attendant, faites vos sauvegardes.

Bises.

Encore un peu de créativité nostalgique

L’article de ce mois sera discount. Je ne veux pas y passer trop de temps, car j’élabore, pour de vrai, la roadmap de Squarity. J’aimerais pouvoir la sortir avant la date-anniversaire, le 26 septembre.

Par ailleurs, je vous prépare un récit corporate assez conséquent. Quand je le sortirai, je vous laisserai juger si sa qualité n’a d’égale que sa quantité.

En attendant, je vous réchauffe un bout de blabla que j’ai déjà pondu dans le Discord de Squarity.

Glorious train wrecks

Ce chapitre a pour sujet la SNCF et ses stupides employés, qui continuent de trouver que leur entreprise est glorieuse alors même que leurs trains ne font que des accidents.

Nan j’déconne !!! Partez pas !

Ce chapitre a pour sujet https://www.glorioustrainwrecks.com/, un site web inconnu qui organise des game jams de jeux amateurs « comme au bon vieux temps ».

Voici une traduction approximative du texte de présentation

Glorious Trainwrecks a pour intention de faire renaître l’esprit des « postcardwares » qui sévissaient vers l’année 1993, et vous encourage à créer des jeux en balançant n’importe quoi au hasard pourvu que ça mousse.

Glorious Trainwrecks vous ramène à l’époque où vous ne prêtiez que peu d’attention à la « valeur de production », où il était plus important de choper des sons de votre émission de télé préférée pour les mettre dans votre jeu, et de créer des images animées en faisant des grimaces devant votre webcam. Une époque où toutes les idées ridicules que vous aviez étaient bonnes à coder, lorsqu’avec vos amis, vous vous inventiez un « nom d’entreprise », afin de légitimer les délires et les moments de glandouilles que vous aviez devant votre ordinateur.

Le but n’est pas de créer des jeux non finis ou injouables. Si un accident ferroviaire est marquant, il doit l’être dans le sens où il est SUPER-COOL.

Avec vous, nous allons ramener le vrai esprit des jeux vidéos indépendants. Oui, vous ! Ce site n’a pas d’autres buts que de vous donner un coup de pied aux fesses pour que vous vous mettiez à créer. Wikipedia explique que des gens déclenchaient des accidents ferroviaires (avec des trains vides, bien sûr) uniquement pour l’amusement général de la population. Le monde ne se porterait-il pas mieux si nous faisons revivre cette tradition ?

Vous n’avez pas besoin d’avoir de talent, tant que vous avez les tripes. Votre jeu ne doit pas obligatoirement être cohérent, mais il doit être terminé.

Il est temps de plonger dans la gloire !

Je ne vois pas trop le rapport entre la création amatrice de jeux vidéos et les accidents de train, et je n’ai pas trouvé d’articles dans Wikipedia mentionnant des accidents volontaires pour l’amusement de la population. Mais on n’est plus à ça près.

Le site recense les jeux créés durant leurs game jams. J’en ai testé quelques uns, ils ne méritent pas forcément beaucoup d’attention, mais ils offrent un petit moment de fraîcheur dans ce monde de brutes.

Vous trouverez des jeux PuzzleScript, jouable directement dans le navigateur, et beaucoup de jeux créés avec le moteur Klik’n Play.

Ci-dessous, un exemple typique. Les personnes qui connaissent Klik’n Play retrouveront quelques-unes des images moches fournies par défaut, le tout formant un ensemble graphique assez disparate (et ça pourrait être bien pire).

La nostalgie renouvelable

Je me retrouve dans cet esprit, ayant passé une partie de mes années collèges sur ce logiciel, à tenter de créer des jeux trucs en balançant des images, des sons et des règles de collisions, le tout très aléatoirement.

C’est fort louable de créer des sites tels que Glorious Train Wrecks, pour permettre à des vieux comme moi de se blottir un instant dans le cocon temporel « de mon époque ». Une petite parenthèse au milieu des trépidations de la vie, pleine de vidéos Youtube placement-produitisées, d’influenceurs rentabilisés, de sites de e-commerce search-engine-optimisés et de posts Linkedin cher-réseautifiés.

Les « jeunes de maintenant » ne vont probablement pas s’intéresser à des outils de création aussi mal fichus que Klik’n Play. Certains expérimenteront peut-être Puzzlescript, à condition d’accepter son minimalisme et son langage fortement spécifique et exotique.

Mais ce serait très déplacé et stupidement conflit-générationnellesque de prétendre que les jeunes de maintenant ne fabriquent plus rien. Seulement ils utilisent des outils de création de jeux vidéos plus récents : Roblox, Scratch, Game Builder Garage, …

La seule chose qui manque, c’est un lien entre les sites nostalgico-créatifs comme Glorious Train Wrecks, et la nouvelle créativité des jeunes et de leurs outils plus actuels.

Squarity est une humble proposition pour rendre possible l’établissement de ce lien. Le moteur est simpliste et les jeux d’exemple relèvent d’un tel amateurisme, que l’on pourrait presque dire que je suis devenu un professionnel dans l’art de produire des œuvres amatrices. Mais c’est du python, et vous pouvez partager vos jeux (assez) facilement. Les jeunes de maintenant apprennent le python au lycée et souhaiteraient montrer leurs créations aux autres jeunes de maintenant.

Si, dans 15 ans, il existe une seule personne qui se plaira à se remémorer les supers jeux qu’elle avait créés durant son adolescence, avec Squarity, alors je serais satisfait. J’aurais transmis ma nostalgie à la génération future, qui la transmettra à la génération future-future, etc.

Faut juste que l’humanité et internet continuent d’exister encore pendant 15 ans, ce qui ne semble pas complètement gagné. On verra.

Mouth Trap, fait en 1989 avec l’outil AMOS sur Amiga, qui a remporté un concours lui permettant d’être publié par l’éditeur Mandarin Software.

Une p’tite pièce ou un p’tit jeu sivoupléééé

Tout ça pour vous demandez : si vous avez le temps, essayez de participer à l’un des game jams de Glorious Train Wreck avec un jeu que vous auriez créé dans Squarity.

J’avais d’autres trucs à raconter, mais en les écrivant, c’est devenu plus conséquent, alors je les mettrais dans un autre article. Ça suffira bien pour aujourd’hui !

Une femme ronde « comme au bon vieux temps », c’est chouette.

Harry Potter et le python matriciel

Qui veut un puzzle marrant inspiré de l’univers de Harry Potter, généré avec du fourchelang le langage python et les librairies numpy + opencv ?

Voilà comment ça se présente :

(click to enlarge, biâtch)

Ceci est un quadrillage composé de 12 cases (3 lignes 4 colonnes), chaque case contient un groupe de 4 clés.

Chaque clé est présente une ou deux fois dans tout le quadrillage.

Si vous prenez deux cases adjacentes, elles ont toujours une clé en commun. Leurs emplacements à l’intérieur des cases sont aléatoires.

Or donc, :

  • pour les cases du milieu, les 4 clés ont une jumelle sur chacune des 4 cases adjacentes,
  • pour les cases du bord, 3 clés sur 4 ont une jumelle, et la quatrième est unique (sont emplacement à l’intérieur de la case est aléatoire),
  • pour les cases des coins, 2 clés sur 4 ont une jumelle, les deux autres sont uniques.

Imprimez cette feuille, découpez les cases, mélangez-les et essayez de retrouver la disposition originale. Quel distrayant puzzle !

Il m’en faut plus

Pas de problème, en voilà un fonctionnant sur le même principe, mais sur un quadrillage de 8×8 cases.

Pour des images plus grandes et de meilleure qualité, c’est par ici dans ce repository git. Elles doivent être disposées comme ceci :

plank_00.png | plank_03.png | plank_06.png | plank_09.png
plank_01.png | plank_04.png | plank_07.png | plank_10.png
plank_02.png | plank_05.png | plank_08.png | plank_11.png

Comment c’est construit ?

Les clés

Pour commencer, il vous faut des images pour générer les clés.

Nous avons donc : (3 types d’aile) x (4 types de bas de clé) x (4 types de haut de clé) x (3 types de tige). Soit 3 * 4 * 4 * 3 = 144 combinaisons différentes de clés.

On peut maintenant construire une image d’une des clés à partir d’un numéro entre 0 et 143. Il vous faudra effectuer quelques divisions entières, quelques modulos et utiliser open-cv (la lib python de manipulation d’image). Je vous fais grâce de ces détails bassement techniques.

Les associations horizontales

Vous prenez ensuite tous les nombres entre 0 et 143, vous les mélangez, et vous les séparez en deux listes de 72 nombres chacune. La première servira pour les clés définissant les liens d’adjacence horizontaux, la deuxième sera pour les liens verticaux.

Réarrangez la première liste en un rectangle de 8 lignes 9 colonnes. Mettons que ça donne ceci :

  7  17  38   4 68 125  96 135  16
101 118  97  73 46 143  92  89   2
 86  14  62  56 10   9   6  19   3
134  36  37  93 13  57  81  52  74
 66   8  71 109 60  40  65  69  27
 59 105   0  76 41  49  91 107  99
115  95  75  48 83 142 141 130  64
  1  51 104 102 22  54  80  34 129

Ensuite, vous recopiez la deuxième colonne juste à sa droite, puis la troisième, et ainsi de suite jusqu’à l’avant-dernière. Ça donne ce rectangle de 8 lignes 16 colonnes (que je vous mets sous forme de tableau, sinon ça fait des retours à la ligne pourris dans wordpress) :

717173838446868125125969613513516
101118118979773734646143143929289892
861414626256561010996619193
134363637379393131357578181525274
66887171109109606040406565696927
5910510500767641414949919110710799
115959575754848838314214214114113013064
151511041041021022222545480803434129

Pour finir, sur chaque ligne, vous regroupez les numéros par couple. Ce qui vous donne un rectangle de 8 lignes et (8×2) colonnes :

7,1717,3838,44,6868,125125,9696,135135,16
101,118118,9797,7373,4646,143143,9292,8989,2
86,1414,6262,5656,1010,99,66,1919,3
134,3636,3737,9393,1313,5757,8181,5252,74
66,88,7171,109109,6060,4040,6565,6969,27
59,105105,00,7676,4141,4949,9191,107107,99
115,9595,7575,4848,8383,142142,141141,130130,64
1,5151,104104,102102,2222,5454,8080,3434,129

Chaque couple de deux numéros correspond à deux clés, dans une case du quadrillage initial de 8×8. Il s’agit des clés réalisant les adjacences horizontales.

Les deux autres clés de chaque case ne sont pas encore définies, ce qui nous amène au chapitre suivant.

Mais avant, une petite pause. Puisque nous sommes dans l’univers de Harry Potter, voici Dawn French, l’actrice qui joue « La Grosse Dame » dans le Prisonnier d’Azkaban.

Les associations verticales

C’est pareil, mais en inversant les lignes/colonnes.

Prenez les 72 valeurs qui restent, disposez-les randomement dans un rectangle de 9 lignes 8 colonnes.

 12 114  15  45 128 120  44  28
  5 110 136 132 126  72  39  88
 78  11  70 127  47 124 117  33
 25 103  20  82  29 139  26 113
106 140 123 122  94  30 119  32
 79  23  21  98  24  55 137 111
 77 138 108 100  53  67  85 133
 58 112  84  90  35 131 121  31
 43  61  87 116  63  42  50  18

Au lieu de doubler les colonnes, doublez les lignes : de la 2ème à l’avant-dernière. Ce qui donne un rectangle de 16 lignes 8 colonnes :

 12 114  15  45 128 120  44  28
  5 110 136 132 126  72  39  88
  5 110 136 132 126  72  39  88
 78  11  70 127  47 124 117  33
 78  11  70 127  47 124 117  33
 25 103  20  82  29 139  26 113
 25 103  20  82  29 139  26 113
106 140 123 122  94  30 119  32
106 140 123 122  94  30 119  32
 79  23  21  98  24  55 137 111
 79  23  21  98  24  55 137 111
 77 138 108 100  53  67  85 133
 77 138 108 100  53  67  85 133
 58 112  84  90  35 131 121  31
 58 112  84  90  35 131 121  31
 43  61  87 116  63  42  50  18

Faites des couples, en prenant deux valeurs l’une au-dessus de l’autre. Ça donne un carré de 8×8. Cette fois-ci, je le mets sous forme de texte-code, car les lignes sont plus courtes et ne vont pas faire de stupides retours à la ligne. Tant que ça ne nuit pas à l’affichage et à la présentation, je préfère le texte brut, c’est plus facile à générer et à copier-coller dans l’article. Vive le texte brut !

 12|114| 15| 45|128|120| 44| 28
  5|110|136|132|126| 72| 39| 88
-------------------------------
  5|110|136|132|126| 72| 39| 88
 78| 11| 70|127| 47|124|117| 33
-------------------------------
 78| 11| 70|127| 47|124|117| 33
 25|103| 20| 82| 29|139| 26|113
-------------------------------
 25|103| 20| 82| 29|139| 26|113
106|140|123|122| 94| 30|119| 32
-------------------------------
106|140|123|122| 94| 30|119| 32
 79| 23| 21| 98| 24| 55|137|111
-------------------------------
 79| 23| 21| 98| 24| 55|137|111
 77|138|108|100| 53| 67| 85|133
-------------------------------
 77|138|108|100| 53| 67| 85|133
 58|112| 84| 90| 35|131|121| 31
-------------------------------
 58|112| 84| 90| 35|131|121| 31
 43| 61| 87|116| 63| 42| 50| 18

Chaque couple de deux numéros correspond aux deux autres clés, dans chaque case du quadrillage initial de 8×8. Elles définissent les adjacences verticales.

Enfin, pour chaque case, vous mélangez randomement les 4 clés contenues dedans.

Y’a plus qu’à coder tout ça. Vous avez une implémentation (un peu à l’arrache) dans ce repository, dans lequel je stockais déjà d’autres bazars pour des mini-jeux et mini-énigmes.

Vérification de l’unicité de la solution

J’ai vérifié avec mon feeling de maître de conférence en arithmancie combinatorio-serrurologique, j’en conclus que oui c’est bon. Aux rotations et aux symétries verticales/horizontales près : y’a qu’une solution.

J’ai utilisé ce puzzle pour une sorte de mini escape-game en famille, et j’ai profité des rotations et symétries pour ajouter une mini-post-énigme. J’ai écrit une lettre derrière chaque carte. Une fois que le puzzle était reconstitué, il fallait toutes les retourner, et retrouver la phrase composée par ces lettres. L’astuce amusante, c’est qu’on ne peut pas déterminer à l’avance le sens de lecture, ni la position de la carte de départ, ni celle d’arrivée. Ça dépend de la manière dont le puzzle a été résolu. Il faut donc tester différents sens pour trouver la phrase finale. Hi hi hi !!

Et hop, d’autres chouettes images de Dawn French.

Tchuss.

Raffarin Pète-Gonade Memorial Day #14

Célébration rituelle de notre jour qui était férié avant et qui ne l’est plus à cause de ce connard de Raffarin ! Vous connaissez le principe : on conspue cet empaffé, on râle, on trépigne, on pleure, mais on ne fait rien de concret parce qu’on est juste une feignasse derrière son écran.

Voilà, ça c’est fait.

Nous pouvons maintenant réfléchir à d’autres trucs.

« Raffarin au Tibet » : il va tous les bouffer.

Et si on coupait l’internet mondial un jour par semaine ?

Ça a l’air étrange qu’une personne comme moi propose ce genre de restriction. J’ai très souvent les fesses vissées sur ma chaise, devant mon écran, à faire des trucs plus ou moins intelligents.

Je suis fortement dépendant de l’informatique. Je pense que je pourrais péter un câble si je n’avais pas accès à un ordinateur pendant plusieurs semaines d’affilée. Mais dans une certaine mesure, un ordinateur sans internet pourrait me suffire.

Les activités que j’aime pratiquer avec mon ordinateur (sans y être forcément talentueux) sont :

  • jouer,
  • programmer,
  • lire,
  • écrire,
  • dessiner du pixel art,
  • créer des challenges de hacking.

Elles ne nécessitent pas un accès internet constant. Bien entendu, il faut télécharger les jeux, aller sur les pages des blogs, faire des recherches sur stack-overflow pour copier-coller à l’arrache le code de la première réponse, chercher l’inspiration, etc. Mais en m’organisant un minimum, je pense être capable de pré-charger tout ce dont j’ai besoin de l’internet, pour ensuite utiliser mon ordinateur de manière optimale durant la journée sans connexion. Je n’ai jamais essayé, mais il est évident qu’annoncer quelque chose sans l’avoir vérifié n’ébranle ni ma conscience ni mon obligation de cohérence envers vous, lecteurtrices.

Autre de mes activités : la recherche d’images (ici, de Mandy Majestic).

Les activités que je pratique avec mon ordinateur dans le cadre professionnel nécessitent un accès internet constant. Ce n’est pas mon problème. La boîte où je bosse n’aura qu’à gérer ça comme il faut.

D’après un sondage que j’ai entendu quelque part et dont j’ai oublié la source, un certain pourcentage de personnes aurait souhaité qu’internet n’existât pas.

Ploum, éminent blogologue, s’est lancé dans une expérience encore plus extrême : une seule connexion par jour pour synchroniser des informations prévues à l’avance, ainsi que des connexions exceptionnelles chronométrées qu’il doit également préparer à l’avance.

Je ne suis pas un grand fan des religions, mais il faut avouer que l’idée d’un jour de repos régulier et obligatoire viennent d’elles (le « jour du seigneur »). Le judaïsme va même jusqu’à se demander s’il est autorisé de faire fonctionner des appareils électriques pendant le shabbat. N’oublions pas qu’en des temps lointains, le Raffarin Pète-Burne Memorial Day se nommait « lundi de Pentecôte » et provenait de la religion catholique. Ce lundi anciennement férié trouve ses racines dans un texte biblique narrant l’histoire de poules en chocolat de Pâques qui gravissent une pente en faisant « côt côt ».

Oui mais comment on ferait sans internet ?

Tout simplement de la même manière qu’on faisait dans les temps lointains où internet n’existait pas.

Bien entendu, l’idéal serait que ce jour déconnecté soit un jour travaillé. Y’a qu’à dire que ce serait le mardi. Les entreprises vont hurler pour l’atteinte à leur « compétitivité ». Par définition, la compétitivité représente le contexte interne et externe qui fait qu’une entreprise réussira mieux qu’une autre. Le jour de déconnexion serait mondial (puisque l’internet est mondial), donc il désavantagerait toutes les entreprises de la même manière, et par définition, ne modifierait pas les compétitivités entre elles.

Ensuite, les entreprises vont hurler que ça ferait écrouler l’économie mondiale. Ce à quoi je répondrais la même chose que précédemment : l’économie mondiale existait déjà avant internet. C’est aux entreprises d’organiser le travail de leurs employés de façon à les rendre le plus productifs possible même durant le jour sans connexion. Ce serait d’ailleurs une bonne leçon de « résilience » (bullshit-word included).

Comment ça se passe actuellement lorsqu’un problème survient dans le réseau interne de votre entreprise et que des employés ne peuvent plus utiliser le matériel informatique à leur disposition ? Ne me dites pas que ça n’arrive jamais tellement votre réseau est ouffement bien conçu. Est-ce que les employés sont condamnés à glander pendant plusieurs heures ? Peut-être que oui. Est-ce que l’impact a été important au point d’égratigner la compétitivité ?

L’engagement, une notion importante, surtout au foot.

Cette journée déconnectée serait une occasion de travailler sur des sujets de fond, de se concentrer sur des projets de long terme, de faire avancer des tâches qui attendent depuis des semaines et qui ne progressent pas car vous êtes en train de répondre aux mini-urgences constamment générées par vos collègues qui vous sollicitent dans le but de régler leurs mini-urgences à eux, générées par d’autres collègues, etc. Peut-être même que cette journée améliorerait la compétitivité.

Tant qu’à faire, on pourrait aussi couper tous les systèmes de communication à distance : téléphone, téloche, radio… Seules les appels d’urgence seraient possibles. Ça ne devrait pas être très difficile techniquement, puisque les appels d’urgence bénéficient déjà d’un traitement spécial : vous n’avez pas besoin de déverrouiller un téléphone pour en effectuer un, et ils utilisent la première antenne disponible, même si elle n’est pas incluse dans votre abonnement.

Il reste le sujet des organismes d’importance vitale : distribution de l’eau et de l’électricité, hôpitaux, etc. Est-ce qu’ils fonctionneraient toujours durant la journée sans connexion ? Réponse : il le faudrait, même si cette journée n’existe pas.

Je peux concevoir que des vies humaines dépendent de l’énergie électrique. Car il y a des solutions de secours pour générer du courant même en cas de perte d’accès au réseau électrique : ce sont les groupes électrogènes. Ça pollue et ça a un rendement catastrophique, mais en dernier recours, ça marche.

Le réseau internet a été conçu pour rester fonctionnel même si une partie des connexions et des appareils qui le composent tombent en panne. Cependant, il n’y a pas de garantie locale. Si le câble de fibre optique arrivant chez vous pète, internet fonctionne toujours, mais plus pour vous. Il n’existe pas de « groupe internetogène » de secours. Ça veut dire que si votre vie dépend d’une connexion à internet, même sur une période courte, ça peut mal se terminer pour vous. Cette journée sans connexion serait une occasion d’organiser les activités humaines de façon à ce que moins de vie soient dépendantes d’un système qui n’a ni solution de secours ni garantie.

Ce sera tout pour aujourd’hui. Vive le bonheur !

Ludum Dare 49 : mes revues de jeu

Zou. Petit article cheapos qui recycle des trucs déjà produits : les commentaires de mes revues de jeux du Ludum Dare pré-précédent. Je me permets parce que le mois dernier vous avez eu deux articles, alors ça va bien. J’oserais dire que ces commentaires comportent des descriptifs de qualité et des suggestions détaillées. Ça vaut ce que ça vaut (le vaut est un animal à poil ras).

Oh, et ça fait le deuxième article de suite qui est en anglais. Vous y survivrez, n’est-ce pas ?

Les jeux sont à peu près classés par ordre croissant de ma kiffitude personnelle. Si vous avez un peu de temps pour en tester quelques-uns, prenez en priorité ceux de la fin, qui sont justement estampillés « kiffitude ».

C’est parti pour du copié-collé frénétique !

Paper Route

https://ldjam.com/events/ludum-dare/49/paper-route

  • Overall:3.0
  • Fun:2.5
  • Innovation:2.0
  • Theme:4.0
  • Graphics:3.0
  • Audio:3.5
  • Humor:2.0
  • Mood:4.0

I encountered some bugs as other people said. But it was not too much annoying.

It is very frustrating to have McLudum giving you so many newspapers at start, and seeing nearly half of them immediatly lost, because the carriage can not hold them all.

I did not managed to get past level 2, but I’m not good at this sort of games.

There seems to be a story with your father, that’s always good to add this in a game.

Nice game, even if I’m not skilled enough for it.

Akameis

https://ldjam.com/events/ludum-dare/49/akameis

  • Overall:1.5
  • Fun:1.0
  • Innovation:2.0
  • Theme:3.5
  • Graphics:4.0
  • Audio:4.0
  • Humor:3.0
  • Mood:3.5

Technically and visually, it is really beautiful. Voxels are cool, and I like the fact that you can see the previous level below. It makes the tower more realistic.

About the time management

However, the turn-based/real-time logic is hard to understand at first, and cancels the interest of many monsters.

I did not immediatly realize the voxel-thing on the top right is a sort of hourglass that indicates the time before the next automatic turn.

The green monsters do not move when you move in real-time (by using the space bar), so you can dodge all of them easily. But at the opposite, the arrows move at the same time of the hero, and also with the automatic turn. This combination is rather illogical. And you often have to wait automatic turns for long seconds, to dodge some arrows that passes by.

Either you use a complete turn-based logic, like the game D.R.O.D., or you use a complete real-time logic, where every elements move at its own rythm. But mixing both is weird and unpractical.

 About the hammer

I thought I could break scenery objects with the hammer, in the hope of hidden bonuses, but scenery are unbreakable.

If you push « Z » without any direction, you smash the ground under you, making you fall and die.

I tried to smash the ground under skeletons with the hammer, but each time I got shot at blank point, because of the weird turn-based/real-time logic, and the fact that there is no visual information indicating that a skeleton is about to shoot.

So IMO the hammer is useless.

About the rest.

You can’t go back to the main menu when you click « how to play », and I had to reload the whole web page.

Arrows stays in place when you restart after dying.

3D is cool, but if you can not turn the camera, it is sometimes hard to see where objects are, or what is behind other objects. In an early level, I stupidly died because I did not realized a bomb has no floor under it.

Sorry for this “hard” review, but all these tiny buggy details makes your game quite painful to play, and gave me really little fun.

The totally safe and explosion free heist

https://ldjam.com/events/ludum-dare/49/the-totally-safe-and-explosion-free-heist

  • Overall:1.5
  • Fun:1.0
  • Innovation:2.0
  • Theme:4.0
  • Graphics:2.0
  • Audio:3.5
  • Mood:3.0

Nice game. You added some perspective feeling with the top half of the hero that can traverse walls, but it introduces a bug. The bullets starts inside the wall, and are instantly cancelled. You can not fire when you stand near a wall.

I liked the guards that spawns after you picked up the bionite. It adds a real importance to the fact that you get instakilled when you hold the bionite.

It needs an ending. Spoiler alert : nothing happens when you finish all the levels.

At the last level, there is a heart floating in space. Is it possible to take it, or is it just a decorative troll ?

Uns’Table

https://ldjam.com/events/ludum-dare/49/ld49-uns-table

  • Overall:3.0
  • Fun:2.5
  • Innovation:1.0
  • Theme:4.5
  • Graphics:2.0
  • Audio:4.0
  • Humor:3.5
  • Mood:3.0

I love the word game in the title.

It is sometimes hard to guess from the description which object must be brought to Uns. (I tested all the consumable objects for the « savourly ingredient »). And it’s sometime a bit long to get the object you want.

Does the object you are holding change the fights ? A sword increases the chance of not being hit, an armor absorbs some damage, … That would be cool. Also, we do not know how the level of the character affects the fights.

Aimless Wizard

https://ldjam.com/events/ludum-dare/49/aimless-wizard

  • Overall:3.0
  • Fun:3.5
  • Innovation:2.5
  • Theme:4.0
  • Graphics:3.5
  • Audio:3.5
  • Humor:3.0
  • Mood:1.5

Nice idea and nice “aiming instability”.

However, your game has a little default common to many games : there is no collision between monsters. As you turn around them, they all pack together in the same spot. Having lots of monsters is not much dangerous as having only a few. And when you hit the pack spot, it’s an XP jackpot.

I would have implemented collision handling and lowered the monster generation rate. It would have increased the feeling of being overwhelmed by your enemies. Here, they just feel “immaterial” and not so harmful.

Some clear delimitations of the game area would have been appreciated. It’s a little annoying to plan fleeing to the left and realizing you can’t because you bumped into the invisible border of the world.

And maybe add more randomness to the target movement. They straightly move in the 4 directions or the diagonals. That would be funnier and “more instable” if they moved in any direction, while changing it progressively.

Anyway, I liked this moment of monster genocide and reached level 8 !

Doc. Noggin

https://ldjam.com/events/ludum-dare/49/doc-noggin

  • Overall:4.0
  • Fun:4.5
  • Innovation:2.5
  • Theme:1.5
  • Graphics:3.5
  • Audio:4.0
  • Humor:2.0
  • Mood:3.0

The sprite choices are a little WTF. On one side, the teeth, syringe, pills and microbs suggest a medical world, which is consistent with the game title. (Maybe I am inside a body I have to heal ?)

But on the other side, there are fuel cans, moving fires, levers, blocks, and stars as background. It may be hard, but you should try to find “medical” equivalent to all these unrelated objects.

Level design looks sometimes strange. Some levels seems to be really big, but you only have to explore a little to find the exit. I do not know if it is made on purpose. It may be a good idea, because it suggests that you’re in a world bigger than what you are able to realize, like a body if you are a micro-organism.

It needs a scenario, or at least some explanations. What is this strange grey-ball-character I have to get ? Why is the world “unstable” ? What am I supposed to do here ?

Even with these little drawbacks, I was hooked and could not stop until I won the game.

(Spoiler alert) : I really liked the mechanic of coming back accross all the previous level.

Music and “special effects” are great.

Thank you for this really cool game !

Orbital Cascade

https://ldjam.com/events/ludum-dare/49/orbital-cascade

  • Overall:3.0
  • Fun:4.0
  • Innovation:1.5
  • Theme:3.0
  • Graphics:4.5
  • Audio:4.0
  • Mood:3.5

Great game. A nice tribute to Asteroids, Lunar Lander and all of the kind.

Controls are hard, but that’s totally assumed in this sort of game.

The GUI is quite messy. Writing « status » next to a bar graph does not help. The status of what ?

I took some time to realize the status is the health of the Earth. I suppose it decreases when a satellite escape from the screen and crashes on the Earth, and it regenerates with the time. But I’m not even sure it works like that. It seems to randomly increase and decrease.

Also, if it works like this, what about burning satellites which you can’t destroy ? Do they make the status decrease ? If yes, it’s rather unfair.

The spaceship health bar is shown on several little ship. It looks like you have several « discrete » lives. But in fact it is a continuous health bar splitted in 5 « mini-health bar ». That’s quite uncommon. And the visual difference between an empty mini-health bar and a full one is not strong enough. It’s hard to quickly take account of your whole current health, whereas it’s the most important thing in the GUI !

As some other people did, I played the whole game with the mouse button pressed, so this feature is useless. Do an automatic metal collect, or add the necessity to aim a satellite with your mouse.

I like the initial radio communication, to set a plot and to explain how to play. Just one thing : you choosed silver as the metal collected from satellites, to express it is valuable and to justify the fact that the player is paid for that. But then the player beams all this precious silver to the earth to have it destroyed in the atmosphere. What a spoil ! It would have been more consistent to tell that the player collects scraps, destroys them, and then the human on earth are so happy with it they instantly pay the player.

Apart from these little drawbacks, the graphics are really cool, the sound is good enough and it’s really fun to play. It gives this incentive of « just one last play to see if I can get more upgrades ».

Congrats !

ecosystem except there is no equilibrium and everyone dies probably

kiffitude de type : c’est un jeu où on code + la personne ayant créé le jeu assume totalement que tout a été fait à l’arrache.

https://ldjam.com/events/ludum-dare/49/i-cant-think-of-a-name

  • Overall:3.0
  • Fun:5.0
  • Innovation:3.5
  • Theme:1.5
  • Graphics:1.0
  • Humor:4.5
  • Mood:4.5

I love the concept, and I also love all the clues revealing that you may have realized the game in a sort of urge :

  • the main title
  • the url of the game : « i-cant-think-of-a-name »
  • the ludum description : « …actually that tagline doesn’t really make sense anymore. »
  • the in-game description : « I didn’t have time to write a good tutorial, but I do have examples »

This game is totally experimental and raw, which I love too.

In case you do not know it, you should visit the site codingame.com, where you will find plenty of bot-coding games, to compete against other people. And maybe you should also test the old text-mode video game ZZT, which has its own level editor and its own programming language.

Thank you, and keep up experimenting !

Volatile Defender

kiffitude de type : jeu squaritable + graphisme + « allez juste une dernière partie ».

https://ldjam.com/events/ludum-dare/49/volatile-defender

  • Overall:4.5
  • Fun:4.0
  • Innovation:2.0
  • Theme:4.0
  • Graphics:5.0
  • Audio:4.5
  • Mood:4.5

Simple but original concept.

I did not want to look at the tutorial at first, and did not realize you could look back whith the « space » key. It may be a good idea to tell this action in your game description.

I like the fact that robots destroy bonuses when they walk on it, it adds some strategy, with choices like : « I should keep this bonus on the ground for later, but I take the risk to have it eaten by a robot ».

IMO, the hero is a little too slow to move from one tile to another, and the bonus lasts a little too short. It generates a little frustration because a big part of the bonus advantages are lost, as you fire in the void while moving in front of your next target.

Really great graphisms and music. The best I have seen for this Ludum Dare, so far.

Parcel Panic

kiffitude de type : j’adore le mini-univers du jeu + j’ai totalement trippé dans mon commentaire.

https://ldjam.com/events/ludum-dare/49/parcel-panic

  • Overall:3.5
  • Fun:4.5
  • Innovation:3.5
  • Theme:1.0
  • Graphics:4.0
  • Audio:3.5
  • Humor:1.0
  • Mood:5.0

The difficulty of the game, that many people felt, would not be a problem if it was brought gradually. It may be a good idea to use all the suggestions in previous comments to make the game easier, and removing them as the player progresses.

  • lower global speed (player movement and energy loss).
  • parcels and energy bar stays longer on the ground, then you make them stay shorter.
  • the parcel destination is directly marked on the map and does not go away.
  • then the parcel destination is indicated on the bottom, as it is now, but it does not go away.
  • then the parcel destination goes away.
  • then some parcels may be heavier and slows you down when you carry too much of them (instead of decreasing your energy faster, which you don’t really realize while you play).
  • then, why not making it more difficult than it is now ? Remove the letters on the buildings ! After all, you know this place by heart now.

The possibility to cycle between the parcels you own may also be a good thing. So that you can optimize your deliveries. To keep track, in your own memories, of the parcels destination, they could look different. Like in the reality.

I really liked the small world where you are. The road to the left is here to show this world is inside a greater one, but you know nothing of it. It increases the microcosm effect. While playing, I felt like the local hero of the quarter, the person who everybody knows, and who is useful for everybody.

I really like the fact that you put different building types. A, B, C, I, J and K are clearly house of rich people, with fences to be protected from the others. D, E and F looks like middle-class houses. G and H are big buildings where all the poors pack themselves. Even in a small world like that you can make appear social differences, which is an interesting idea.

The post office may not be a good idea. It suggests that this small world has contacts with the outer world. I would have put a more local building : « the janitor desk » or something like that.

An idea comes to me while I’m writing this comment. You should have different types of parcels, and use them as collectibles in the game. You could have a menu where you see the list of all the collectibles you gained, and read their descriptions.

You could have parcel types that clearly shows that the expeditor and destinator hate each other, and other that shows they love each other, or many other feelings.

Here are some ideas :

  • a letter with a heart drawn on it,
  • a present that looks really expensive,
  • a postcard that you can read,
  • a letter whose address is written like : « old dork Jack »,
  • a parcel with white powder on it,
  • a beer pack,
  • a parcel that smells shit,
  • a dead animal,
  • a bullet,

As you play a game, you could imagine and guess the life of all the people in the microcosm, as you learn which type of things they send to each other. How would you feel, as the local delivery hero, when you end up knowing everything of all you neighbors ?

When a game starts, you could randomly choose some specific situations, that the player would discover progressively : a rich house that sends parcels with white powder to all the middle-class and poor buildings, two middle-class neighbors that sends normal parcels at the beginning and then hate parcels (bullets, dead animals, …), expensive presents sent from a poor buildings to a rich house without any returns, love between a rich and a poor, …

Whoa, I realized I totally tripped on this game. That was cool. Thank you for your game. Do what you want with all these weird ideas.

Voili voilà

Et voici Chun Li en version un peu plus ronde que d’habitude.

Bug et propositions d’améliorations pour l’outil All-Seeing Eye

Coucou. Voici un deuxième article dans le même mois !

Comme promis, j’ai envoyé 20 euros à All-Seeing Eye, pour remercier Joonas Hirvonen d’avoir créé cet outil permettant de modifier le jeu Eye Of The Beholder. Je m’en suis servi pour créer un challenge de Hacking pour la THCON. Tout est expliqué dans ce précédent article.

Ce fameux Joonas Hirvonen m’a remercié par mail et m’a encouragé à transmettre mes signalements de bugs. Je vais lui envoyer un document récapitulant tout ça, j’en profite pour le copier-coller ici. Ça ne vous intéresse peut-être pas, mais moi ça me fait un article à peu de frais. (Quelle blague ! Tous mes articles sont à peu de frais !)

C’est en anglais, vive le rosbif !


These bugs and improvement proposals are sorted from most important to less important.

Technical context :

Do what you want with these bugs, as I am not sure I will have the occasion to re-use ASE.

Modifying scripts provokes graphical bugs

Many wall images are scrambled when the game scripts are modified.

Here are steps to reproduce the bug.

  1. Start a game, create a party, go to the first drainage grate.
  2. Everything looks OK.
  1. Launch ASE.exe and set the folder
  2. Launch EOB1_Explorer.exe
  3. Add an instruction anywhere in the code, for example : F8 "I add a new message here." 00 02 00
  4. Press Ctrl-F9 to compile.
  5. You get a message box telling « Range check error. »
  1. Click the button « update INF ».
  2. Close and restart EOB1_Explorer.exe
  3. Add another instruction anywhere in the code.
  4. Press Ctrl-F9 to compile.
  5. This time you don’t get the error message.
  6. Click once again the button « update INF ».
  7. Start another game, re-create a party, go to the first drainage grate.
  8. This time the image is buggy. I do not know from where it was taken. It looks like a part of an attacking leech.

Other bugs appear on many wall textures. Once it happened, there is no hope to come back to a correct display.

I guess it’s a problem with memory offsets in the game information. It is quite annoying, it cancels all the involvement I would put in the creation of a totally new Eye Of The Beholder game.

Object sub-position cannot be redefined

Information related to objects can be modified in the tab « F4:Items ». But their sub-positions cannot be modified.

As we all know, an object on a square in the map has 5 possible sub-positions : the four corners on the ground, and the alcove carved on a wall.

The function ADD_ITEM shows it. It has 3 parameters : OBJECT_INDEX, POS_X_Y, SUB_POS.

The initial data contained in the .PAK files undoubtedly contains these supositions. When I modify existing object coordinates, they land on different sub-positions, depending on their index.

If the initial sub-position of the object is in an alcove, and if the object coordinates is on a square that has no wall, we have flying objects !

These flying objects can not be taken. Too bad.

I would say the tab « F4:Items » should have a field « sub-position », that allows us to read and write sub-position of each object.

A weird thing in the game engine : there is only one sub-position to define an object in an alcove, not one per wall side.

If you put a square with an alcove wall on each side, and if you put an object sub-positioned in the alcove on this square, then the object is visible from the four sides ! Logically, when you take it, it goes away from the four sides. In my opinion, this weird behaviour should be documented somewhere.

Encounter scripts should be editable, if possible

I do not know if it is possible at all. Some encounters seem to execute the same kind of instructions as the ones in the script :

  • speaking with Armun puts some objects in front of the party and sets a global flag,
  • there are movements automatically done before and after speaking with the dwarven cleric, and the previous global flag is checked to initiate the conversation,
  • speaking with Shindia spawns the monster « Shindia »,

I guess the dialogue texts, reply choices, player characters joining the party, etc. are all stored somewhere in the game files. If we could modify all this, it would be really cool, and we could make a totally-totally new Eye Of The Beholder game.

Some event parameters are not parsed in the script

Here is the code we usually have with stairs and ladders :

IF         TRIGGER_FLAG = 1 (on_enter)
ELSE_GOTO  $0473

[...]

IF         3 = 0
ELSE_GOTO  $044C
TELEPORT   TYPE = $E8 (party), SOURCE = <00,00>, DEST = <18,24>

IF         3 = 1
ELSE_GOTO  $0459
TELEPORT   TYPE = $E8 (party), SOURCE = <00,00>, DEST = <17,23>

IF         3 = 2
ELSE_GOTO  $0466
TELEPORT   TYPE = $E8 (party), SOURCE = <00,00>, DEST = <18,22>

IF         3 = 3
ELSE_GOTO  $0473
TELEPORT   TYPE = $E8 (party), SOURCE = <00,00>, DEST = <19,23>

IF         TRIGGER_FLAG = 4 (on_put_item)
ELSE_GOTO  $04AE

IF         3 = 0
ELSE_GOTO  $0487
TELEPORT   TYPE = $F5 (item), SOURCE = <18,23>, DEST = <18,24>

IF         3 = 1
ELSE_GOTO  $0494
TELEPORT   TYPE = $F5 (item), SOURCE = <18,23>, DEST = <17,23>

IF         3 = 2
ELSE_GOTO  $04A1
TELEPORT   TYPE = $F5 (item), SOURCE = <18,23>, DEST = <18,22>

IF         3 = 3
ELSE_GOTO  $04AE
TELEPORT   TYPE = $F5 (item), SOURCE = <18,23>, DEST = <19,23>

END

The translated script shows comparrison between litteral numbers : « 3 = 0 », « 3 = 3 », … which looks really dumb.

This is of course not what the script does. These values corresponds to the direction from where the party comes, or the direction from where the object was thrown. It is used to reposition the party or the object from where it comes, because nothing is supposed to stay at the same square of a stair or ladder.

Some specific words should be used in the translated script to describe this process. For example, 3 = 0 should be replaced by FROM_DIRECTION = NORTH.

The direction identifiers are the usual ones : 0 = north, 1 = west, 2 = south, 3 = east.

Labels should be shown in the « Events » tab

The « F2:Events » tab shows the translated scripts, but the GOTO instructions have the litteral adresses.

The « F3:Scripts » tab shows GOTO instructions with labels, but the script is displayed with raw bytecode.

The text labels should also be displayed in the « F2:Events » tab, to have all the human-readable script in one tab.

It is quite painful to modify the scripts, I was always switching between the two tabs : write some code, check it is correct, and so on. A really nice feature would be a mode to display the two tabs side by side. The « F2:Events » would automatically updates while we type in the « F3:Scripts » tab. But maybe that’s too much to ask.

Texture atlas needed

I had to try different wall numbers in the map, then play the game to see the corresponding images, then repeat for the next level palette, etc.

Some identifiers are the same in many palettes, for example : with « brick » and « blue », the value 51 corresponds to a wall with writings on it.

Other identifiers exist only in one palette, or are different between palettes, for example : all the stone portal images.

That would really be helpful to have the complete list of wall images, with their identifier, for all the palettes. You don’t even have to integrate it in the existing software. Just toss an external document with the images and their identifiers, that would be perfect.

Command parameters should be documented

The tab « F5:Commands » lists all the existing commands, which is great, but not enough.

The parameters of each command should also be documented. Some commands, such as TELEPORT or ADD_MONSTER, have numerous, varied and complex parameters.

The documentation you linked to https://moddingwiki.shikadi.net/ is interesting, but really hard to read and to understand. I’m not sure it explains all the commands of Eye Of The Beholder.

Program crashes when writing coordinates with one digit

This one is simple to reproduce :

  • Go to « F3:Script » tab, go to the « event trigger points » zone.
  • Modify a coordinate of any event, write it with only one digit. For example, replace « 03 » by « 3 ».
  • Press Ctrl-F9.
  • You get an error message : « Access violation ».

Code size limit should be checked

When the script of a level is too big, it can lead to unexpected behaviours.

The last address value in « F2:Events » should be checked. If it is greater than $1AF0, there are risks to have unexpected behaviours. I’m not sure of the exact limit, it may be a rounded value, like $1B00.

This should be checked by EOB1_Explorer.exe, and a warning message should be displayed when updating/saving the INF file.

The unexpected behaviour seems quite random, and occur when the party arrives in the level having the INF too big.

Sometimes, it’s an immediate crash with a totally unrelated message :

Some other times, it’s a crash with a message « Far heap corrupt! » when you click on the button « CAMP » :

Race and class values are not completely documented

The file EOB1_Explorer_Notes.txt has an uncomplete list of race indexes. Here is the complete one :

  • 00 = Human
  • 01 = Elf
  • 02 = Half-elf
  • 03 = Dwarf
  • 04 = Gnome
  • 05 = Halfling

The Class identifiers are not correct and does not correspond to the HAS_CLASS function.

There are only 4 « base class »,

  • 01 = Fighter
  • 02 = Mage
  • 04 = Cleric
  • 08 = Thief

HAS_CLASS adds all the classes of your characters, by using the boolean « OR », and returns true if there is at least one set bit in common with the parameter given to the function.

Multi-class activates the corresponding bits of all the base classes.

For example, let’s say the party has a Fighter/Mage and 3 clerics (that’s a weird party).

HAS_CLASS(2) will return True. It evaluates to :

  • has_class_param & (classes_chara_01 | classes_chara_02 | ... )
  • 2 & ((fighter | mage) | cleric | cleric | cleric)
  • 2 & (fighter | mage | cleric)
  • 2 & (1 | 2 | 4)
  • 2
  • True

It is not possible to check if there is a ranger in the party. This class only lights the « fighter » bit.

It is also not possible to check if there is a paladin. This class lights the « fighter » and the « cleric » bits.

The way how the function HAS_CLASS works should be documented.

That’s all

Thank you once again for having created these tools. They are wonderful, even with those tiny bugs.

I used EOB_Explorer1 to create a hacking challenge that involves the game and your tools. This challenge was part of the CTF at the Toulouse Hacking Convention 2022. The people who tried it said it was really interesting (a few of them managed to solve it, though). I will submit it to root-me.org in the upcoming months and I will let you know about it, if root-me accepts it.

For the moment, I have not planned to create other challenges or other games with Eye Of The Beholder, so there may have no specific reason to fix these bugs. Anyway, I’m really happy to have « revived » this game in a quite uncommon way. It was an important part of my childhood, I took many years to finish it.

See you next time !


Voilà, c’était tout ce que j’avais à dire. Je l’envoie à mon nouvel ami Joonas ce soir. S’il me répond des trucs intéressants, je vous en ferais part.

Bien entendu, j’ai plusieurs autres idées de challenge « TUR-ROX », avec d’autres jeux. J’essayerais d’en concrétiser une ou deux pour la prochaine THCON.

Cet article est un rapport de bug.

Rapport de bug -> bug -> ladybug -> l’héroïne de dessin animé -> vêtements aux motifs de cette héroïne -> femme ronde !

Enjoy :

Pour le mois prochain, je me permettrais d’être moins blogalement productif. Je vous rassemblerai un package de commentaires de jeux du Ludum Dare, et ça devrait suffire.

D’ailleurs, faut que je vous annonce mon classement. Eh bien on fera tout ça en même temps.

THCON + Ludum Dare, ça a été un beau bazar ces dernières semaines. Peut-être que maintenant je vais avoir du temps pour faire la road-map de Squarity ?

On ne sait pas…