Cet article regroupe les notes me permettant d'animer prochainement cet atelier.

Parce que chez Zenika, quand un nouveau collaborateur nous rejoint, on le fait participer à un bootcamp de 2-3 jours pour l'imprégner de nos valeurs (si vous me connaissez, vous imaginez tout ce que je peux tirer de cette phrase).

Donc, l'un des éléments clés de ce bootcamp est l'animation (fantastique) d'un atelier Extreme Carpaccio. Ca marche très bien en présentiel. Mais comment porter ça à distance ?

Un collègue m'a envoyé un lien vers un super article Extreme Carpaccio qui référence un tout aussi chouette repository GitHub (également nommé extreme-carpaccio) qui contient le code permettant d'animer ça à distance. Reste à le faire marcher (et c'est ce que je vais expliquer ici).

Démarrer le serveur

Là c'est simple

npm install
node_modules\.bin\bower install # Parce qu'il semble y avoir un bug quelque part
npm start

Et ça démarre gentiment.

L'interface d'administration est alors accessible sur http://localhost:3000.

Reste maintenant à l'exposer sur internet pour que les participants puissent s'y enregistrer facilement.

Pour ça, j'essaye déséspérément d'utiliser LocalTunnel.

Donc, dans un autre terminal, je tape

lt --port 3000 --subdomain bootcamp-janvier-2021 --local-https false --print-requests --open

Et ça marche.

Reste maintenant à démarrer un client

Démarrer un client

De la même manière, je vais dans le dossier des clients, et je vais préparer un client en ... Python, tiens!

cd clients\python\flask-server
pip install Flask
python .

Et à nouveau je démarrer un localtunnel pour que le serveur parle au client à travers internet

lt --port 5000 --subdomain flask-at-bootcamp-janvier-2021 --local-https false --print-requests --open

Et là, curieusement, ça ne marche pas !

D'un autre côté, je n'ai pas eu droit au message de Windows m'indiquant que le port 5000 était ouvert au monde entier. Pourtant, ça marche

> curl -v http://10.0.10.97:5000
* Rebuilt URL to: http://10.0.10.97:5000/
*   Trying 10.0.10.97...
* TCP_NODELAY set
* Connected to 10.0.10.97 (10.0.10.97) port 5000 (#0)
> GET / HTTP/1.1
> Host: 10.0.10.97:5000
> User-Agent: curl/7.55.1
> Accept: */*
>
* HTTP 1.0, assume close after body
< HTTP/1.0 200 OK
< Content-Type: text/html; charset=utf-8
< Content-Length: 11
< Server: Werkzeug/2.0.2 Python/3.9.1
< Date: Thu, 06 Jan 2022 13:31:04 GMT
<
hello world* Closing connection 0

Alors qu'est-ce qui foire ? Est-ce que c'est Python ? Est-ce que c'est Flask ? En tout cas ça "marche à peu près" en Java et Javascript (même si ces clients demandent un peu d'amour, parce qu'ils ne marchent pas si bien que ça).

On a donc un client et un serveur qui peuvent se parler à travers internet. Ca va exiger un peu de support de la part des facilitateurs, mais à priori c'est jouable ...

Reste maintenant à voir si ça supportera l'épreuve du réel. Et pour ça, je dois bien reconnaître qu'il va falloir que je code une solution. Je vais donc prendre la solution Java et essayer de la faire marcher.

Implémenter en Java

Donc pour le fun, j'ai pris la version java-httpserver.

La première chose que je remarque, c'est que cette version de l'extreme carpaccio envoie tout de suite l'ensemble des calculs de prix possibles. C'est un peu différent de ce qu'on fait en présentiel, mais on va s'adapter !

Donc j'ai produit mon implémentation et ...

Ca n'est pas forcément un succès. Et j'ai l'impression que c'est dû à de sales histoires de gestion des taxes ... (ou plus exactement de la manière dont Java et Javascript gèrent différemment les arrondis autour des doubles).

Cela dit, c'est intéressant et, comme pour Codingame, je me suis vite pris au jeu d'essayer de trouver une implémentation qui soit à la fois juste et efficace.

Autrement dit, c'est un chouette exercice, qui ne nécessite qu'un peu d'adaptation dans le sorytelling pour bien fonctionner. Et je vous en reparlerai ... prochainement.


Si vous voulez développer une application en Python, et que vous voulez pouvoir travailler facilement et rapidement, cette librairie vous aidera beaucoup


Je n’ai lu qu’un seul de ses livres, mais je trouve que le portrait résonne avec ce que j’ai lu. Il y a chez cette autrice un espoir, une croyance dans le fait que les choses peuvent s’améliorer que je trouve vraiment agréable.


Un avis assez éclairé sur Dune. Je partage certains points (en particulier la vision d’une intrigue pas forcément maîtrisée).


Oh formidable : rien qu’en chargeant une CSS malicieuse, on peut mettre en place côté serveur un système de fingerprinting pour identifier l’utilisateur …​ Le tout au prix d’une énorme CSS et d’analyses côté serveur pas forcément faciles



Review

Ce court livre détaille les différents niveaux d'intérêt de la programmation réactive avec des microservices et en utilisant vertx. C'est parfaitement didactique et ça forme une introduction très intéressante à ce sujet.
Et je trouve vraiment très bien de prendre un sujet qui d'habitude occupe 600 pages pour les compresser dans un texte de moins de 80 pages.




Il semblerait bien qu’avec ce streamdeck, je pisse piloter OBS depuis ma tablette …​ Intéressant (si je me lance dans ces folies)


Comme chaque année, c'est la saison des voeux. Et donc, bonne année ! Et si 2020 a été une année difficile, je peux dire sans hésiter que 2021 a été pour moi l'année la plus difficile depuis ... 1992, peut-être ... (pas d'explications)

Donc, 2021 a plutôt mal commencé, parce que j'ai été opéré, et alité pendant un mois entier (et mes vieilles habitudes sportives ont bien souffert à ce moment-là). Et si le cinéma est riche de retours en formes d'acteurs-athlètes, dans la vie d'un informaticien pas toujours très en forme et à l'aube de la cinquantaine, c'est un peu plus long. Heureusement, cette année, j'avais un objectif, et on peut dire que je l'ai atteint.

J'en ai descendu un paquet la semaine dernière

Et vous n'imaginez pas à quel point ça fait du bien de se sentir en forme.

A côté de ça, professionnellement, l'année a été plutôt curieuse.

J'ai pu avancer ... un peu ... sur mon envie d'avancer sur C4/Structurizr grâce à une longue mission de développeur/archéologue (ce qui m'a permis de me rendre compte que j'allais devoir retravailler mon outillage), qui m'a également poussé à faire un petite conférence plutôt intéressante (laquelle va m'envoyer faire un micro-séminaire en janvier, et une participation de plus à Snowcamp - et ça, c'est vraiment génial - si tant est que ça arrive).

Par contre, côté activités annexes, je dois bien reconnaître que l'année n'a pas été si productive que ça.

  • Pas d'avancement sur rrss2imap (qui marche néanmoins très correctement)
  • Un avancement très limité sur mon lifestream (on ne va pas se mentir, j'ai simplement ajouté une configuration sftp et trouvé la détermination de lancer mon build maven tous les mois pour que le site avance)
  • Et c'est tout

Pas fou, hein.

Et en un sens, je trouve ça normal et même sain. Parce que cette année, j'ai avant tout été convalescent. Alors, que faire en 2022 ?

Une réflexion de Cédric Champeau me fait beaucoup ... réfléchir

La réflexion est intéressante, parce qu'elle suppose (à juste titre) qu'une catégorie est surreprésentée. celle des hommes blancs, comme d'habitude. Comment changer ça ? Effectivement, à première vue, en se retirant volontairement de la cène. Mais aussi, et peut-être surtout (parce que les mouvements individuels ne forment que rarement des mouvements collectifs), en changeant les archétypes. Je m'explique ... J'ai été un peu choqué cette année quand j'ai compris que, comme d'habitude, on confiait aux femmes le rôle du travail émotionnel. En effet, la keynote du devfest lille, qui parlait d'éthique et d'écologie, était animée par deux brillantes oratrices. La géniale Aurélie Vache fait également un travail formidable sur la sensibilisation au syndrome de l'imposteur. Mais dans tous les cas, on laisse le soin aux femmes de présenter les dangers du mal-être, quand les hommes continuent à présenter des outils et des moyens de mieux réussir.

Et je crois sincèrement qu'il y a un vrai travail d'éthique appliquée à construire pour éviter que les entreprises de ce début de XXIème siècle ne deviennent avant dix ans les pires foyers dystopiques. Mais pour l'instant, je n'ai vraiment pas l'impression que ce travail soit mené avec le niveau d'exigence nécessaire ... Alors quoi ? Je vais m'y lancer par pur hubris ?

En fait, je n'en sais rien. J'aimerais beaucoup, mais je crains d'être mauvais ... Ou tout au moins de manquer pour l'instant des connaissances nécessaires pour mener ce chantier, ne serait-ce que dans mon entreprise ...

Je pense néanmoins que je vais en discuter, et y réfléchir, de plus en plus.


Review

Après le choc de Seul sur Mars, Andy Weir revient donc avec ce roman dont l'action se situe intégralement sur la Lune. Et plus précisément autour de la ville lunaire d'Artemis. L'action est narrée (et vécue) par Jazz, coursière et contrebandière notoire, qui se retrouve embrigadée dans une sombre histoire de guerre économique moderne, avec sabotage inclus.
On retrouve dans ce livre l'un des éléments marquants de Seul sur Mars : l'attachement rigoureux au détail technique, la vraissemblance dans tous les détails (ou presque, puisque j'ai fortement tiqué quand il a été question d'une athmosphère composée uniquement d'oxygène - toxique aux fortes pressions), et le narrateur unique.
En revanche, autour de ces éléments classiques, beaucoup de choses changent : la narratrice est évidement une femme (dont le langage intérieur ressemble beaucoup à celui de John Watney), elle vit aux franges de la légalité, et ce roman nous parle de son plus gros coup, et de l'enquête policièe qui suit.
Et franchement, ce roman est la preuve qu'on ne peut pas forcément prendre un style, aussi excellent soit-il, et le projeter dans un autre contexte. Parce que de mon point de vue, ça ne marche pas. Je m'explique. La particularité de ces romans est d'être très connotés NASA : on mange du sigle, de l'équipement d'astronaute, mais aussi de la façon de penser : la sécurité avant tout, l'environnement est dangereux, il faut faire confiance à ses coéquipiers, le matériel doit être préservé, ... Et ça s'applique assez - voire très - mal aux actions de notre narratrice, qui va saboter du matériel en risquant bêtement sa vie, puis se lancer dans une série d'improvisations de plus en plus dangereuses. Résultat, j'ai eu beaucoup de mal à entrer en empathie avec elle. Pourtant l'auteur essaye de forcer ça à travers une seconde ligne narrative composée de ses échanges avec un correspondant terrestre, qui nous aide à comprendre comment sa vie est devenue ce fiasco. Mais ça ne suffit même pas.
Qui plus est l'intrigue, et les rôles des différents seconds rôles, est plutôt faible.
Pour l'intrigue, ça commence mal avec le milliardaire qui s'attaque à une mafia sans se douter des conséquences. Ca continue encore plus mal avec l'administratrice lunaire qui reconnaît que son expérience sera détruite par cette mafia, mais qui ne semble envisager aucune parade. Et ça se termine franchement mal avec cette histoire de sieste générale que j'ai trouvée inutile et vaine.
Pour les seconds rôles, je leur ai trouvé un manque de personnalité absolument criant. Globalement, ils n'ont à peu près qu'un attribut descriptif. Honnêtement, c'est très pauvre, et ça ne suffit pas pour moi.
Au bout du compte, plus que ces défauts, le pire, c'est d'avoir l'impression d'assister à une scène de loose ordinaire : la narratrice tente une arnaque, échoue, et retombe à peine sur ses pieds. C'est vain, et plutôt inintéressant.

Du property-based testing en Java. ca pourrait être utile.



Une série d’article sur l’écriture de Python moderne. Ca change évidement de la tradition.



Si vous cherchez un ordinateur vintage, mais que vous n’avez pas trop les moyens, ce site est pour vous






Les théories de narratives de Campbell sont aussi intéressantes que faciles à expliquer. C’est vraiment chouette.



Je cite texto, parce que c’est trop bon "Si vous n’avez pas besoin de masque parce que Dieu vous protègera, pourquoi avez-vous besoin d’une arme à feu ?"



je trouve cette horloge qui ne donne l’heure qu’à travers des citations littéraires absolument à mon goût. Si je maîtrisai Android, j’en ferai un écran de verrouillage alternatif.



Comme markdown n’est pas soutenu par une organisation, les tentatives de normalisation échouent …​ toujours. En voici une nouvelle, qui échouera à nouveau, hélas




Ca ne me servira à rien, grâce à shaarli, mais j’ai quelques collègues que ça intéresserait *beaucoup\*


Review

Dans une ville flottante post-apocalyptique débarque une guerrière accompagnée d'une orque et d'un ours blanc encagé. Ce personnage quasi légendaire sert au début du roman de toile de fond aux vies d'une fonctionnaire municipale d'un lutteur dans un sport de combat quelconque, et d'un jeune livreur. On découvrira bien vite, et par des moyens bien curieux, qu'ils ont des liens bien plus proches que ce qu'on pourrait croire...
Ce roman me laisse une sensation très mitigée. Il a des qualités littéraires évidentes, un décor des plus dépaysants, et des personnages très denses. Néanmoins, il souffre de quelques défauts... Pénibles.
Le premier d'entre eux, et le plus dérangeant pour moi, est que, de mon point de vue, on est ici dans la pure fantasy. En effet, on y voit deux "enfants", deux orphelins de guerre, même, retrouver leur famille dans un combat contre un homme qui pourrait être un parfait méchant. Et ce combat est mené grâce à des forces qui semblent plus pencher du côté de la magie que d'autre chose. Bien sûr, le devoir est de la pure science-fiction, avec implants, intelligences artificielles à tous les étages et toute la quincaillerie sf. Mais tout ça n'a en fait aucun impact sur l'histoire.
Histoire qui est l'autre point faible. Parce qu'elle tient à grands coups de coïncidences, de "avec de la chance, ça va marcher" ou de Deus ex Machina.
Dommage parce que aurait pu être brillant

Review

Dans ce troisième tome au parfum de y Telenovela assumé, es personnages sont peut être un peu moins nombreux (normal, puisque la lune connaît cent façons de vous tuer), mais l'action n'en est pas moins spectaculaire. Il y a des courses poursuites, des duels judiciaires, des reconstructions aussi spectaculaires que les destructions, des retournements de situation tout à fait inattendus. Bref, le lecteur en prend plein les yeux. Il y a toutefois quelques défauts, ou plutôt un unique, que je ne trouve même pas si grave. A force de vouloir faire fresque, l'auteur risque de perdre le lecteur inattentif ce qui n'a pas été mon cas.
Du coup j'ai apprécié ce grand, terrible et beau spectacle comme l'auteur l'imaginait, je pense :en étant évidemment stupéfait par l'ampleur de la chose, mais aussi par l'humanité des personnages, même quand ils sont monstrueux (et c'est le cas de verrais de ceux qui sont présentés comme les gentils). Qui plus est, l'imagination technologique, qui en science-fiction prête une part du sense of wonder, décrit ici des endroits et des créations toutes magnifiques, qui permette en plus à une culture très riche de se développer.
Bref, de mon point de vue, ce roman est un chef d'œuvre, tout simplement.




Un site raisonnablement complet sur les microservices, incluant des réponses à la plupart des questions pénibles sur ces sujets.




La police française dérape de façon systématique. Et cette unité, et le fait qu’elle ne soit pas dissoute, en est un exemple frappant. Qu’est-ce qu’il y a de bon dans cet article ? Le fait, triste, que la vérité soit révélée de façon démontrable, simplement.







Pour aller (beaucoup) plus loin que la création d’un diagramme de Gantt "simple", TaskJuggler est quand même bien plus puissant que PlantUML (et évidement, il y a une image Docker pour ça)



Je n’avais jamais entendu parler de cette idée, qui me paraît néanmoins très intéressante. D’autant plus si elle est associée à la génération de légendes …​







Si par hasard vous faites de l’architecture logicielle, ces outils sont tous très intéressants.


Oui, l’affaire log4j révèle l’inadaptation des entreprises à l’open-source. Tant pis pour les entreprises. Parce que le problème n’est pas du côté de log4j, mais du côté des entreprises qui refusent leur responsabilité.


Un tunnel permettant d’exposer un port de machine de dev sur internet …​ Pratique pour, par exemple, développer une app Slack



Si vous avez peur de la faille log4j (vous devriez), cette liste d’actions assez courte et efficace devrait vous permettre de regagner un peu de sérénité



Review

Dans ce roman, on suit les aventures d'Ichabod Drift, capitaine de vaisseau spatial pas très honnête, et de son équipage composé d'un assemblage pas forcément très reluisant de techniciens et de gros bras divers. Toute cette belle bande se retrouve embauché pour "livrer" un colis dont ils ne savent pas grand chose. Evidement, il y a un piège. Et évidement, ils vont tomber dedans. Et pour se venger (parce qu'il n'est évidement pas question d'un honneur que les voleurs n'ont pas), ils vont partir en quête de leur commanditaire, caché au fin fond de l'espace.
Ca donne évidement un roman plein d'action, et de personnages savoureux (au passé souvent trouble). Mais évidement, ça donne un roman sans beaucoup de surprises (vous l'aurez, je l'espère, compris au nombre d'"évidement" parsemant cet avis). On voit donc nos personnages voler dans le ciel terrien, combattre dans un ring souterrain ou dans les couloirs d'une station spatiale et globalement s'agiter assez rigoureusement, tout ça pour un gain somme toute assez prosaïque.
Malheureusement, il y a des défauts. Au premier lieu desquels la morale des personnages qui me semble franchement obscure : ils se battent pour se venger, mais au-delà de ça n'ont pas vraiment d'aspirations, no de sens moral quelconque, à part peut-être une certaine forme de fraternité (qui n'a pas été sans me rappeler le très bon l'espace d'un an). Et ce manque de morale, qu'elle soit positive ou négative, m'a clairement empêché de ressentir la moindre forme d'empathie pour ces personnages. Par ailleurs, le récit est raconté d'une manière aussi linéaire que peu littéraire. Les phrases sont courtes, avec les désormais classiques cliffhangers de fin de chapitre et les alternances de point de vue entre les différents personnages de l'équipage. Mais c'est plat, terriblement plat. Même les événements les plus inattendus ne laissent que peu d'impression.
Et tout ça est bien dommage, parce qu'il y a dans cette histoire une forme de potentiel, qui est celui que je vois dans tous les romans de fripouille. Je m'explique : qu'il s'agisse de la saga vorkosigan ou des [book!mensonges de Locke Lamorra], il y a dans les romans mettant en scène un escroc l'enchantement qu'on voit dans un spectacle de magie : on sait qu'on va se faire berner, mais c'est fait suffisement bien pour qu'on se laisse avoir. Malheureusement, Ichabod Drift n'est vraiment pas Miles Vorkosigan. Et si ses astuces prennent, le roman donne l'impression que c'est un peu malgré lui (alors que je pense que c'est clairement l'ambition de l'auteur de nous faire comprendre qu'il est un génie de l'escroquerie).
Et quand je dis que c'est dommage, c'est suffisamment dommage pour que je me demande vraiment si j'achèterai la deuxième partie quand elle sortira.




Est-ce que c’est enfin l’époque qui voit fleurir des librairies de logs ne respectant pas l’PI SLF4J ? Oui, et en un sens c’est tant mieux 🤪



L’article est intéressant, mais la conclusion partielle. Du fait de cette immigration de longue date, on a aussi un racisme de longue date, qui rend le pays hostile aux étrangers (et c’est ce que sous-entend le NY Times).


En France, soit tu consultes des medias d’état, soit tu consultes des medias de milliardaires. Ca oriente un peu l’information, non ?



Un script Python de détection d’attaque log4shell. La méthode est assez basique : le script lit les fichiers de logs de la machine et regarde quels fichiers contiennent $\{jndi:ldap:


Une distribution basée sur Ubuntu qui a l’air …​ bien ?




Une liste, évidement appelée à grandir rapidement, des entreprises et organisations affectées par la faille de log4j





Assez épaté de découvrir qu’en 2021 des gens se lancent dans la création de modeleurs UML




Je parlerai plus tard de la raison pour laquelle je suis tombé sur cet article, mais en tout cas je le trouve très chouette pour ceux qui ont une approche très design pattern du java


Une idée aussi originale qu’amusante : recycler des bras de mannequin en lampe réactive au son. Ca fait une déco originale 😬




J’ai vu un reportage sur cet artiste ce midi, et j’ai trouvé ses oeuvres tout à fait enthousiasmantes.




Si vous développez en Rust, et que vous manipulez des fichiers (par exemple) dans vos tests, cette crate est faite pour vous !



Décomposition architecturale et DDD peuvent évidement faire bon ménage, comme le montre cet article






Ca me rappelle vachement ce que fait Philippe Charrière avec GitLab …​ Et dans les deux cas, c’est une idée franchement chouette.


La projection mercator, c’est l’exemple typique de l’outil qu’on utilise bien au-dela de ses capacités et qui craque de partout …​ Ca pourrait faire une super métaphore de l’usage du Javascript 🤣


Review

Ce livre me laisse tout-à-fait partagé.
On y suit l'histoire de Rex, une espèce d'hybride chien-homme (comme dans les seigneurs de l'instrumentalité) créé pour la guerre (pas comme les seigneurs de l'instrumentalité) et augmenté d'implants cybernétiques. Et comme l'auteur est américain, ça commence comme un film d'action des années 80, avec de la guerre. On y voit donc Rex agir dans le cadre d'une armée privée avec beaucoup de mépris pour la vie humaine. Mais il a une excuse, il obéit aux ordres. Et avec sa meute hybride, il porte haut les valeurs de l'entreprise à laquelle il appartient.
On ne va pas se mentir, cette première partie est particulièrement pénible à lire, puisqu'on y trouve *vraiment* tous les poncifs : le technicien alcoolique, le maître de guerre vraiment détestable, les gentils civils, la bataille entre frères d'armes aux allégeances différentes, tout y est.
Et puis, assez classiquement, la guerre s'arrête, et on ne sait plus quoi faire des horreurs créées pour celle-ci (en l’occurrence tous ces hybrides augmentés) et on essaye d'abord de les détruire et de les enfermer. Et dans cette deuxième partie commence à poindre une forme très atténuée de questionnement éthique. Parce que Rex, notre personnage principal, est un chien, et en tant que tel, il obéit à son chef, ce qui le met dans une situation difficile. Et en avançant, le récit devient encore plus subtil pour atteindre avant la fin un niveau vraiment intéressant.
Seulement, il y a un problème.
Un problème assez simple à exprimer : j'ai déjà lu tout ça.
L'histoire d'une libération de ces esclaves modernes, je l'ai déjà lue justement dans les seigneurs de l'instrumentalité. La quête d'une intelligence et d'une compréhension d'un monde trop complexe, je l'ai déjà lue dans Des fleurs pour Algernon. La fin du combat, et la difficulté de vivre dans un monde en paix pour un guerrier, je l'ai déjà lue ... des dizaines de fois, je crois. L'être étrange qui s'extrait de sa prison pour atteindre un rôle dans la société, je l'ai déjà lu aussi. L'être méprisé auquel on élève une statue, tout autant.
Autrement dit, il y a de belles idées, et quelques moments assez intéressants, mais il n'y a dans ce roman absolument rien d'original. Et ça m'attriste, parce que le roman n'est pas dénué de qualités ... Au premier lieu desquelles la richesse des inspirations de l'auteur. Pour le reste, je dois dire que les personnages ne m'ont pas paru particulièrement marquants, que l'histoire était plutôt prévisible (sauf le dernier chapitre, inattendu chez un auteur américain), et que le monde manquait singulièrement de profondeur.
En écrivant ça, je me rends bien compte qu'en fait, ce que j'ai aimé avant tout dans ce roman, c'est qu'il baigne dans un bain culturel que je connais, et que c'est ce bain que j'aime plus que ce livre. Autrement dit, lisez les oeuvres originales, qui sont riches de qualités et de défauts plus marqués que cet étrange erzats.

Très chouette présentation sur l’importance d’un web accessible. Ca me donne de plus en plus envie de reprendre mon site perso pour virer Bootstrap …​