Mensuel Shaarli
June, 2020
Spoiler : absolument rien. L'UE n'a rien apporté, elle a même aggravé la situation dans quasiment tous les cas pour y étaler sa propagande. C'est sûr qu'en face il n'y a eu que des morts...
Encore une vidéo exemplaire du youtubeur Trouble Fait au passage.
(Titre d'origine de la vidéo : "Comment l’UE et l’euro s’effondrent face au Covid ! - YouTube")
@Animal attention ce que tu écris ne fonctionne QUE parce que ton fichier se trouve dans le classpath de test (car intégré au jar de test).
Dès que le fichier est en dehors du classpath, ça ne marchera pas.
À tous les shaarlistes, j'ai linké un post que je viens d'écrire et au vu de sa taille vous vous doutez que j'ai mis un certain temps à le rédiger. Or à chaque fois que je tape un post long, j'ai pris l'habitude de copier le contenu de ce dernier parce que je sais que j'aurai un timeout au moment de la publication.
Question : comment augmente-t-on le temps de timeout de son shaarli pour que les jetons restent valides disons une heure par exemple ?
Voilà, merci à ceux qui savent.
Pour @Doudou, @Lenny et @Kysofer qui se couchent à 3h du matin toutes les nuits.
Un tuto interactif sympa sur les flexbox que m'a filé @Kim aujourd'hui.
Je ne sais pas quoi dire.
Les concepts de "maître" & "esclave" en informatique utilisent bien les mots avec leur sens réel : le maître commande et l'esclave lui obéit. Ces deux appellations sont parfaitement choisies et reflètent exactement ce qu'il se passe dans le code.
Certains humains transposent leurs ressentis sur des objets soit, mais de là à supprimer des mots du dictionnaire je ne comprends pas (ou se les interdire, cela revient au même). Dans cet exemple, un processus n'a pas de couleur, un ensemble d'instructions ne peut pas avoir de "race" (et pour rappel, les "races" n'existent pas, nous faisons tous partie de la même espèce, même si les "anti-racistes" américains n'ont que le mot "race" à la bouche #Paradoxe [#DissonanceCognitive)](./add-tag/DissonanceCognitive)_).
Comment peut-on considérer qu'utiliser les mots pour leur signifiant soit quelque chose de raciste lorsque le concept exprimé à travers eux ne fait pas référence au moindre être humain mais souhaite exprimer la notion de contrôlant et de contrôlé qui lie deux objets (virtuels de surcroît) ? À quel moment quelqu'un de sain d'esprit ou d'un minimum réfléchi peut-il se laisser glisser à ce point ?
Idem, j'ai déjà fait un post sur la notion de liste blanche (d'ailleurs @Sweet j'ai lu tous tes reposts mais je n'ai pas encore eu le temps de te répondre, ils sont top !) qui ne tire pas son sens du racisme mais de la couleur des feuilles de papier dans les soirées mondaines de la haute bourgeoisie.
Je ne peux m'empêcher de penser que certaines personnes qui ont un agenda politique - ou font commerce des concepts sociologiques pétés qu'ils importent contre monnaie sonnante et trébuchante tout droit des USA - commencent par changer le sens des mots (en redéfinissant ce que sont le racisme, la démocratie, etc), puis ils vont faire de sorte que certains mots soient interdits et sans ces anciens mots pour comprendre le passé ils vont pouvoir réécrire l'histoire et limiter notre capacité à penser certains concepts.
Rappelons-nous ce qu'écrit Noam Chomsky, celui qui contrôle le passé contrôle le présent et celui contrôle le présent écrit l'avenir.
Dans leurs comportement respectifs, un maître restera l'élément qui commande, un esclave celui qui obéit, une liste blanche un document où des gens sont autorisés, une liste noire son opposée.
Libre à chacun de projeter son ressenti personnel sur ces choses là, mais je ne pense pas que l'on puisse faire société avec des gens comme cela car au final, tout se passera de la manière dont ils l'entendent car ils se victimiseront toujours au moyen de leur ressenti, chose que personne ne peut nier mais qui pourtant ne peut faire office de "vérité" ni d'argument.
Edit :
Je copie-colle un lien qu'on m'a transmis par SMS sur un article écrit par Michel Onfray qui résume très bien l'anti-racisme aux USA :
Je vais dire des choses un peu banales, mais les races n’existent pas sauf pour les antiracistes qui estiment que les Blancs ça existe et que les Blancs sont coupables de tout. Je viens de lire Houria Bouteldja que je n’avais pas lue et j’étais assez sidéré de voir que quand on met des majuscules à Blanc, à juif, à Noir, on estime que les Blancs sont de toute façon coupables depuis toujours et tout le temps. C’est-à-dire que moi, par exemple, je suis coupable depuis 1492, bon, d’accord, très bien, et que même par exemple on a vu que la statue de Victor Schœlcher qui a été massacrée par exemple en Martinique, on se dit même les abolitionnistes blancs sont des salauds parce qu’ils sont blancs. Elle dit par exemple “fusillez Sartre”, elle explique que les gens qui portaient les valises du FLN étaient des gens qui se donnaient bonne conscience et que de toute façon quoi que fasse un Blanc c’est pas bien, parce qu’il est blanc, même quand il fait des choses qui pourraient paraître intéressantes, genre lutter contre l’abolitionnisme, et que quoi que fasse un Blanc, mais que quoi que fasse un Noir, s’il fait quelque chose de pas bien, eh bien c’est toujours bien. Elle nous explique par exemple que quand des arabo-musulmans, je reprends son expression, violent 500 femmes à Hambourg ou à Cologne le 31 décembre eh bien on explique que le coupable c’est le Blanc puisque c’est le mâle dominant blanc du patriarcat qui a supprimé la dignité de ce peuple-là qui essaie de recouvrer sa dignité en se retrouvant dans la peau d’un violeur, mais finalement le coupable c’est le Blanc du patriarcat. On rêve ou quoi ?
J'invite toutes celles et ceux qui participent de ces mouvements à se poser une question simple : Ok les européens ont dominé le monde moderne et ont exporté leur modèle de société partout depuis 5 siècles. Mais admettons que d'autres grands empires l'aient fait à leur place ces 5 mêmes derniers siècles, alors quelles sociétés civiles aurions-nous à cette heure ?
Oui parce que c'est facile de critiquer le passé avec notre regard actuel et notre confort du 21ième siècle quand blancs comme noirs nous profitons tous de la luxueuse France et de ses infrastructures financées au moyen du colonialisme passé et du néo-colonialisme moderne !
Puis je me pose quelques questions :
- En tant que femme aurai-je le droit de m'exprimer ?
- En tant qu'hommes accepteriez-vous seulement de me lire connaissant mon sexe ?
- Saurais-je ne serait-ce qu'écrire ?
- Serais-je ne serait-ce que vivante (et pas tuée dès la naissance car je suis l'aînée de ma famille) ?
- Notre technologique en serait-elle au niveau actuel où nous pouvons nous parler sans même nous connaître ?
Pour cette dernière question, je rappelle à qui veut l'entendre que ce qui a aidé les peuples d'europe à se développer (et donc à obtenir les moyens de dominer le monde en tant que grands méchants blancs) c'est le recule de leur obscurantisme religieux. Que dire du développement technologique de sociétés qui seraient restées figées dans le temps, pile au moment où leurs grands textes ont été rédigés, c'est-à-dire lorsque l'on croyait la terre plate, les chiens maudits, les femmes des objets, la viande maudite le vendredi, etc ?
Onfray a raison, on croit rêver !
Edit : oubliez BLAKE2... J'avais lu en diagonale puisque le site explique que BLAKE3 est encore plus rapide !
Je recherchais un algorithme de hachage qui soit optimisé pour des machines 64 bits, aussi sécurisé que SHA-512 voire SHA-3 mais surtout aussi rapide que MD5. Il semblerait que nous ayons notre silver bullet : BLAKE2.
L'algo est déjà implémenté dans Bouncy Castle, et je compte bien faire joujou avec pour tester la bête.
Toutes celles et tous ceux qui ont vécu une relation toxique sauront de quoi je m'apprête à vous parler. Peut-être connaissez vous quelqu'un qui laisse toute place à ses émotions, qui ne met en avant que son ressenti et à côté duquel vous ne pouvez rien dire, vous n'osez plus parler de peur de vous faire sauter à la gorge. Chacun de vos mots peut devenir un prétexte, une arme utilisée par cet interlocuteur pour vous piéger et ensuite vous punir.
À ce stade, surtout lorsque c'est votre conjoint, vous préparez vos paroles dans votre tête avant de prononcer quoi que ce soit et pendant que vous vous exprimez, vous faites attention à ses expressions, à ses gestes, à la moindre de ses crispassions afin de vous dédire juste à temps et vous éviter la punition pour ne pas dire le cataclysme.
Cette torture je l'ai vécu trèèès longtemps, je l'aimais pourtant et de tout mon cœur mais j'étais piégée et j'avais peur de ses réactions en per-ma-nence, vraiment la crainte était omniprésente, toujours là et tout le temps. C'était une relation hautement toxique et même ses propres amis venaient me voir pour me dire que j'avais beaucoup changée, que je m'effaçais plus qu'avant, que je riais beaucoup moins et surtout que j'acceptais des choses "pas normales" selon eux (mais ils ne voulaient pas êtres pris pour cible, alors ils se limitaient à ça et ne lui disait rien).
Aujourd'hui dès années ont passé, nous nous sommes séparés et je me suis reconstruite, alors quand je vois les dérives du progressisme qui met en avant le ressenti des gens avant le signifiant des mots (cf. le couple master-slave), qui pousse à l'auto-censure parce que certaines choses seraient intrinsèquement "mauvaises" (comme si la morale était une valeur universelle et absolue) au point où des universités s'effondrent (cf. Evergreen) et bien je suis terrifiée par cette mouvance qui se généralise.
Et je pèse mes mots, car vivre ça au niveau du couple a été l'une des plus horribles expériences de toute ma vie, alors vivre ça au niveau de toute la société française je n'imagine même pas le cauchemar ! Parce qu'à l'époque, en dehors de mon couple, j'avais le travail où je pouvais souffler, même le RER était une phase de répit c'est vous dire ! Mais c'était tout.
En ce sens, maintenant que je suis bien plus forte et bien plus avertie, je compte me battre bec et ongle contre les problèmes tout droit venus des USA, engendrés à cause du passé tordu de cette nation et qui ne sont pas les nôtres, afin qu'ils ne s'importent pas dans notre pays. Il faut dire non au progressisme autoproclamé "inclusif", il ne l'est pas, c'est un buzzword, un mot de novlangue qui exclus ceux qui "pensent mal". C'est un obscurantisme qui ne dit pas son nom et il s’immisce facilement car il touche à nos émotions et non à notre raison. Pour lutter contre lui il faut lutter contre notre pire ennemi : nous-même.
L'anti-racisme fait la même chose (enfin un pan de la mouvance antiraciste), qui prône l'agression, la destruction de l'ennemi sans ouverture, sans dialogue ni pardon. Tout ce qui n'est pas antifa doit être détruit, tout ce qui n'est pas inclusif est méprisable, tout ce qui n'est pas comme nous est contre-nous. Je n'arrive même pas à comprendre comment des gens qui pensent lutter contre les extrêmes ne fassent pas le rapprochement entre leur mode de fonctionnement et celui de ce qui a été des milices, puis des partis politiques radicaux et qui nous ont conduit vers les deux grandes guerres. La démarche intellectuelle était la même : on ne peut pas discuter avec eux les XXX (remplacez par la motion la plus efficace, "raciste, extrémiste, masculiniste, fasciste, pianiste" ? Ah non pas encore pour celui-là).
Bref, le monsieur en vidéo explique bien le point de vue et cela m'a donné envie de poster tout ça car j'ai vu beaucoup de choses passer sur différentes rivers et sur les réseaux asociaux ces derniers temps et quasiment tout n'est qu’émotionnel et se contredit entre mise en œuvre et idéologie.
Très bon article de La Quadrature du Net !
Je dédie ce post à mon @Philou adoré qui m'a dit qu'il avait installé l'application StopCovid sur son mobile. Le pire c'est que je sais exactement pourquoi tu as fait ça et c'est une des raisons pour lesquelles je t'adore. Ce n'est pas parce que tu es pro-LREM ou encore d'un quelconque extrême qui prône la surveillance de masse pour plus de sécurité, mais c'est parce que tu te dis que ta vie privée est moins importante que la vie de quelqu'un, même si tu ne le connais pas, même si l'application a peu de chance de marcher.
En fait l'installer c'est offrir une chance de plus à autrui, même infime, et c'est ta pierre à l'édifice. Comment critiquer une abnégation pareille ? En réalité je ne peux pas. D'ailleurs en comparant mon individualité à celle d'un autre, en quoi suis-je légitime pour affirmer que ma vie privée est plus importante que sa vie tout court ???
Par contre en ramenant cela au collectif, en quoi la vie (tout court) d'une autre personne, même d'un millier d'autres, en quoi leurs vies sont-elles plus importantes que la vie privée de tout le collectif, c'est-à-dire de l'ensemble des individus qui font la société française, malades inclus ?
Il me semble que notre groupe social appelé "français" est biiiiiiiennnnn plus important que le groupe social appelé "malades" car beaucoup plus grand en nombre ? Et là philosophiquement, la notion de vie privée impliquant également la vie privée des générations futures, celles qui s'apprêtent à naître et qui ne sont pas encore là, alors il me semble que la vie des malades actuels - et c'est dur d'écrire ça - leurs vies me semblent moins importantes que la défense de la vie privée de tous.
C'est la raison pour laquelle je n'installerai pas l'application StopCovid (sans compter que je n'ai pas le Google Play Store sur mon mobile).
Quand aux autres, pour qui êtes-vous... Peste maintenant ou choléra plus tard ?
P.S : au fait @Philou, la batterie du téléphone tient-elle bon avec le bluetooth allumé en permanence ?
Visiblement ça marche, sauf dans les cas tricky où il y a une imbrication de la détection des types au runtime. Je note aussi que pour tout ce qui est découverte du classpath au runtime (typiquement les drivers JDBC), il faut spécifier le nom de la classe du driver si elle est chargée via un Class.forName() (ce qui est toujours le cas en théorie).
Il ne me reste plus que deux questions en suspend avant de pouvoir passer entièrement sous GraalVM :
1) Comment fonctionne le classpath lorsque ce dernier contient un répertoire ? Le contenu est-il intégré à l'exécutable produit par GraalVM ou faut-il faire une bidouille ?
2) Comment fonctionne l'allocation mémoire avec un exécutable natif ? Avant, nous passions les options Xms et Xmx à la JVM mais celles-ci ont-elles encore une sens ?
Sinon les gains au démarrage sont encore plus impressionnant que ceux que j'avais obtenus il y a presque deux ans et l'API NIO est bien plus rapide que celle d'une JVM normale !
Le renouveau de la JVM est bel et bien en train de devenir plus rapide que Go sauf que la plateforme est riche (en termes de features proposées par le langage) et aussi polyglotte puisque GraalVM permet de traiter du Kotlin, du Scala, du R, du JavaScript, du Ruby, etc.
Réponse rapide : il n'y a pas de bonnes façon de faire cela.
Cela fait bientôt trois ans que je cherche une façon propre et pérenne d'utiliser Gradle au-delà d'un niveau "amateuriste" et ça n'est juste pas possible de le faire simplement. Pourquoi me direz-vous ? Parce que Gradle ne repose pas sur une configuration déclarative mais sur un DSL, c'est-à-dire du code ni plus ni moins.
En Gradle on écrit du code pour compiler, tester et packager du code. C'est une sorte de gros ANT où le XML à laisser sa place au Groovy avec un moteur certes hyper rapide mais Gradle demeure une immense régression en terme de gestion de projet par rapport à Maven et je compte argumenter.
En une phrase : un processus ce n'est pas un plugin !
Il est possible de coder un plugin pour Maven, mais ce plugin représente une tâche, une action spécifique, un traitement unique qui reposera sur une convention, restera paramétrable et surtout sera parfaitement réutilisable d'un projet à un autre projet.
Un exemple parfait : le maven-assembly-plugin permettant de fabriquer des tar.gz. Je peux donc avec Maven déclarer dans une configuration (donc pas du code) un processus qui fasse :
- Compilation (avec le kotlin-maven-plugin)
- Exécution des TU (avec le maven-surefire-plugin)
- Archivage des classes dans des JAR (avec le maven-jar-plugin)
- Analyse SAST des failles de sécurités des libs (avec le dependency-check-maven-plugin)
- Production du bundle qui embarquera jars + exec + conf (avec le maven-assembly-plugin)
L'ordre d'exécution c'est mon workflow, c'est mon processus de build. À aucun moment je n'ai eu à écrire du code pour réaliser tout ça. Mieux encore, ce processus standard peut être mis dans un projet à part en tant que workflow unique et standard de l'entreprise. Cela implique que tous les projets de l'entreprise en hériteront et cela garantira que chaque projet subira les mêmes contrôles. Mieux encore il peut être décomposer en plusieurs projets ou chacun est une couche spécialisée dans une préoccupation : la packaging, les tests, les rapports, les analyses de sécurité... Bref c'est facile et hyper-maintenable.
Il est possible de fabriquer plusieurs de ces configurations, une par types de projets (serveur, lib, batch, etc) et il est même possible d'avoir un héritage entre ces configuration afin qu'elles partagent un maximum de chose et ou chaque nouveau fils raffine le processus de build dans son domaine.
Avec Gradle, il faut que je code un plugin unique qui embarque toutes ces étapes... Comment expliquer à quel point c'est pourri...?... C'est vraiment pourri ! Voilà. Mais pourquoi est-ce donc pourri ?
Simple :
1) Parce que le code appelle le code. Plus j'en écris, plus je devrai en écrire alors qu'une configuration non.
2) Le code c'est incroyablement dur à relire, alors qu'une configuration non.
3) Le code doit être testé alors qu'une configuration non.
4) Le code a toujours le risque d'être écrit pour une plateforme particulière (linux, windows, etc) l'exemple typique étant le séparateur de répertoires '/' ou '\' qui est hardcodé, alors qu'une configuration non.
5) Le plugin Gradle embarquant le workflow implique que tout le processus est rédigé au même endroit, alors qu'une configuration non (elle peut-être éclatée).
6) Si j'ai deux processus distincts, je devrai écrire deux plugins distincts, alors qu'une configuration (je fais référence à celle de Maven) peut être étendue à chaque pom enfant (oui parce que si nos classes doivent être petite, nos pom doivent l'être aussi).
7) Une configuration peut être surchargée, alors que c'est impossible sur un plugin.
En résumé, je pense que Groovy est un langage qui s'appuie sur tout un tas de mauvaise idées (il possède quand même quelques bonnes, mais le typage faible qui est l'anti-pattern absolu sur la longue vie d'un projet est à mon sens le meilleur exemple). Je pens qu'un DSL est une encore plus mauvaise idée car il nécessite un apprentissage du DSL et la plupart du temps des fonctionnalités du vrai langage sous-jacent (et en toute franchise je n'ai pas le temps d'apprendre la techno de merde qui habite votre cœur)_.
Alors un DSL en Groovy ça me "juste tue"... Et Gradle mise sur ça !? C'est l'une des raisons pour lesquelles je préconise mille fois plus Gitlab-CI en lieu et place de Jenkins, car GitLab s'appuie sur une configuration déclarative et non sur du code à copier-coller en DSL-Groovy (et je vous recommande Go Task au passage pour ceux qui souhaitent se rendre indépendant d'un CI).
Je ne fais pas dans la bidouille, je dois gérer plusieurs centaines de builds par jour dans un département de 200 personnes qui fourni des outils rendant service à littéralement 60 millions de clients, je travaille à un niveau professionnel et non dans une "team-startup" qui code une appli Android en moins de 3 semaines et où bidouiller des scripts de build à l'image d'un étudiant en TP est un comportement tout à fait standard et acceptable.
Pour toutes ces raisons, Gradle ne peut pas être un outil que je recommande au niveau industriel. J'ai donc trois souhaits au choix :
- Soit que quelqu'un remplace le DSL de Gradle par une conf évolutive.
- Soit que Maven change son moteur pour rattraper les performances de Gradle au build.
- Soit que quelqu'un m'indique un troisième outil qui ferait mon bonheur en alliant conf et performances.