Mensuel Shaarli

Tous les liens d'un mois sur une page.

September, 2022

JetBrains Annotations - Avoir un comportement identique sur IntelliJ et Maven

Résumé
IntelliJ instrumente du code juste pour lui lorsqu'il exécute des TU.

Ce faisant, l'annotation @NotNull apposée sur un paramètre produit un NullPointerException lorsque c'est Java ou Maven (via Surefire lors des TU) qui exécute la fonction en lui passant un null mais elle produit un IllegalArgumentException lorsque c'est IntelliJ qui exécute la même fonction avec le même null passé en paramètre.

Solution
Désactiver le paramètre "Add runtime assertions for not-null-annotated methods and parameters" dans le menu Setting > Build > Compiler

Designer une API REST - OCTO Talks !

Nous débattions ce matin de la pertinence d'un modèle RESTful théorique dans le monde réel.

Je fais partie de ceux qui pensent qu'il n'est pas adapté et qu'il vaut mieux un modèle hybride REST/SOA (kysofer m'a convaincu à force). Dans tous les cas voici un ancien cours d'OCTO qui parle du sujet.

Quels navigateurs pour des tests Selenium

Au dernier trimestre 2022, voici les versions stables des navigateurs que j'utilise pour mes tests Cucumber/Selenium chez mes clients sous Windows :

Comment arrêter une application Spring Boot (Actuator graceful shutdown)

Prérequis
Avoir activé Actuator.

Configuration
Ajouter ceci dans votre fichier bootstrap.yml

server:
  shutdown: graceful

Déclenchement de l'arrêt
Envoyer une requête de type POST sur /actuator/shutdown. Par exemple :

curl -X POST localhost:8080/actuator/shutdown
Little buddy Mode - Jouer avec un petit dans les jeux vidéos

Voilà une idée qu'elle est bien 😍 !

Dans les jeux vidéos, il faut un mode "Little Buddy" ou un second joueur dispose d'un personnage qui ne prend pas de dégâts (ou vraiment très très peu) et qui peut même accomplir des objectifs juste pour lui.

Ce personnage serait dédié aux enfants de 3 à 8 ans pour qu'ils puissent jouer avec les grands sans la difficulté des grands.

Parce que donne une manette déconnectée à un petit, ça va 5 min.

Idée à faire tourner selon moi.

Comment instantier manuellement une interface implémentant JpaRepository ?

En résumé si l'on passe par un contexte Spring chargé au moyen de la classe AnnotationConfigApplicationContext nous avons :

@Bean
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
public RepositoryFactorySupport userRepository(EntityManager entityManager) {
    return new JpaRepositoryFactory(entityManager);
}

@Bean
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
public UserRepository userRepository(RepositoryFactorySupport factory) {
    return factory.getRepository(UserRepository.class);
}

N.B : j'ai supposé que tout était en scope prototype puisque tout utilise un EntityManager qui est une entité recréée à chaque fois et qui est jetable.

Stratégie du choc et ingénierie de la soumission : vers un « blackout » programmé au service du Reset ? Vincent Held – Les moutons enragés

Je suis tombée sur cet article d'analyse (et d'anticipation) très conspi qui parle du Great Reset et d'un tas d'autres choses qui y sont liées ou en découlent. Une lecture tip-top pour les trajets en rentrant du boulot.

@Animal c'est pour toi, fais toi plaisir :P

Avec son nouveau Code de la famille, Cuba devient le pays le plus progressiste d'Amérique latine - Geo.fr - Nekoblog.org :: Marque-pages

Globalement la réforme est une bonne chose sauf sur un point qui pèse lourd à mes yeux.

Associons cette phrase :

Les Cubains ont approuvé à plus de 66% par référendum un nouveau Code de la famille qui légalise [...] la gestation pour autrui [...].

A celle-ci :

Il y a plus d'un an, en juillet 2021, des manifestations historiques aux cris de "Nous avons faim" et "Liberté" ont également secoué l'île.

En un an, la situation des Cubains n'a pas changé en terme de famine et de pauvreté. Que se passera-t-il donc à votre avis pour toutes ces femmes à qui la GPA s'adresse ?

Est-ce les femmes les plus aisées qui vont vendre leur ventre, réduire leur espérance de vie, augmenter le nombre de séquelles d'une grossesse (ie. varices, hémorroïdes, incontinence, rééducation complète des abdominaux, des dorsos et du périnée, etc) puis se taper post-partum sur post-partum pour quelques deniers ?

Je vois en la GPA une mesure de plus commanditée par des bourgeois (hommes et femmes) ainsi que des homos et des trans (tout aussi bourgeois a priori), leur permettant de soumettre d'avantage les plus faibles parmi nous et d'acheter nos corps pour leur bon plaisir.

Ces gens s'imaginent que la grossesse est une joie et que de toute façon, les souffrances physiques ou psychologiques qui en découlent peuvent se compenser avec des billets.

Mais heureusement, la misère ambiante va favoriser "naturellement" ce marché dont les premiers clients seront assurément des étrangers asiatiques, européens ou américain, mais certainement pas cubains...

En somme, une mesure pensée par et pour le bonheur d'odieux connards qui n'en ont rien à foutre de nous.

La GPA n'est pas du tout un progrès. D'une manière générale changement ne veut pas dire progrès, c'est de la novlangue ça. Et quoi qu'il arrive, la commercialisation de nos organes internes n'est pas une avancée, c'est une régression des plus abjectes.

Encore et toujours ce sont nous qui trinquons et c'est la raison pour laquelle je suis certaine à présent que le féminisme intersectionnel a pour but de tuer le (vrai) féminisme. Tout se fait au profit des hommes qu'ils soient de ceux qui s'assument ou de ceux qui prétendent être des femmes.

The world has recently become less democratic - Our World in Data - Shaarli de Riduidel

Tout à fait d'accord, surtout depuis la chute d'Athènes !

Rappel : l'élection est profondement antidémocratique puisque l'élection consiste précisément à abandonner son droit à voter les lois soi-même au profit d'un autre qui n'a aucun compte à rendre à ses pigeons électeurs.

Cucumber JVM - Options de configuration du frameworks

@Animal il n'est apparemment plus possible d'éteindre totalement les logs de Cucumber lorsque les tests passent et de n'imprimer que les tests qui ont échoué.

Si c'est bien le cas, alors Cucumber va sortir illico-presto des frameworks que j'emploie car comme le dit @Kysofer

Un build ne doit jamais rien afficher, sauf quand il plante afin de rester lisible et rapide.

Java - Quelles sont toutes les valeurs possibles de l'annotation @SuppressWarnings traitée par Javac ?

Voici le résumé :

  • all to suppress all warnings
  • boxing to suppress warnings relative to boxing/unboxing operations
  • cast to suppress warnings relative to cast operations
  • dep-ann to suppress warnings relative to deprecated annotation
  • deprecation to suppress warnings relative to deprecation
  • fallthrough to suppress warnings relative to missing breaks in switch statements
  • finally to suppress warnings relative to finally block that don’t return
  • hiding to suppress warnings relative to locals that hide variable
  • incomplete-switch to suppress warnings relative to missing entries in a switch statement (enum case)
  • nls to suppress warnings relative to non-nls string literals
  • null to suppress warnings relative to null analysis
  • rawtypes to suppress warnings relative to un-specific types when using generics on class params
  • restriction to suppress warnings relative to usage of discouraged or forbidden references
  • serial to suppress warnings relative to missing serialVersionUID field for a serializable class
  • static-access to suppress warnings relative to incorrect static access
  • synthetic-access to suppress warnings relative to unoptimized access from inner classes
  • unchecked to suppress warnings relative to unchecked operations
  • unqualified-field-access to suppress warnings relative to field access unqualified
  • unused to suppress warnings relative to unused code
  • varargs to suppress warnings about unsafe usages of variable arguments (varargs) methods, in particular, those that contain non-reifiable arguments.
Jodd - Un ensemble de micro-frameworks / micro-libs pour JVM

Parfait pour Kotlin et Java.

La place des femmes dans les grosses rémunérations

Attention à ce genre de chiffres qui ne regardent que d'un côté.

Les hommes sont majoritaires voire représentent l'intégralité de la population dans les métiers dangereux et sous-payés. Ils sont aussi majoritaires dans les prisons, dans la déscolarisation, ils représentent la plus grande par des suicides, des clochards, et la liste est longue, tristement...

C'est sûrement le patriarcat ou une forme d'oppression systémique des mascus-fachos (j'arrête le troll ici).

@Seb tu généralises le petit substrat d'hommes ayant hyper-réussi et le généralise à la foule de ceux qui n'ont presque rien.

Quel est le pourcentage de femmes éboueurs , de femmes saigneurs dans les abatoires, de femmes égoutiers ? Si nous ne sommes pas au zéro alors nous l'approchons pour ces métiers difficiles.

Pourquoi nous ne réclamons pas de quotas dans ces métiers mais seulement dans les metiers à forte rémunération ou à grande part de pouvoir ?

Le verre est toujours à moitié vide dans l'oeil de celui qui à soif. Et de ce point de vue, beaucoup de femmes sont devenues insatiables. Messieurs ne vous faites pas dévorer à grands coup de culpabilisation forcée et de fausse morale.

Peut-on parler des dynasties d'hyper-bourgoies qui s'accaparent et conservent richesses et pouvoir depuis des siècles ? N'y a-t-il pas là plus grande injustice ? Que devient l'egalité des chances face à ce constat récurrent ? Ah oui, le racisme est systémique, le patriarcat omniprésent et le ruissèlement fonctionne, j'oubliais 🤦‍♀️.

Matrice des compatibilités des versions Angular / NodeJS

Je me note :

  • Angular 12.x => NodeJS 14
  • Angular 13.x => NodeJS 16
  • Angular 14.x => NodeJS 16