LCC 267 - Lagom efface sa dette technique
Antonio et Emmanuel discutent Microsoft et Java, cryostat, Java 17, Micronaut, Quarkus, Play framework, Lagom, Amazon, CORS, CSS (si si), Hibernate Reactive, AtomicJar, canary, amplification algorithmique.
Enregistré le 12 novembre 2021
Téléchargement de l’épisode LesCastCodeurs-Episode-267.mp3
News
Langages
Blog sur les extraits de code dans les JavaDocs (18 Oct 2021)
- C’est plus agréable à utiliser que les balises
pre
, pas besoin d’escaping (pour<
et>
), l’espace à gauche est normalisé - On peut mettre en valeur certaines portions ou remplacer par une expression régulière certains bouts
- Et on peut également externaliser d’où vient l’extrait de code, au lieu de le mettre dans la JavaDoc, on peut référencer une région de son vrai code.
- Donc au moins, on est sûr que c’est du code valide et qui compile évidemment
- Gunnar explique comment reprendre le code provenant de nos classes de test, pour le faire apparaître dans les JavaDocs, créant ainsi une vraie documentation “exécutable”
Compress class space (27 Mars 2019)
- Compressed object ou class pointer sur 64 bits en 32 bits via une adresse relative
- À cause de l’adresse relative, la Klass structure dans le metaspace doit être mémoire contiguë et pré allouée initialement (risque de non-réallocation si mémoire libre non contiguë)
- Donc le class part et le non-class part séparés dans le meta space. Klass is 32G max et contiguë et la klass part est appelée compressed class space
- Par défaut 1G mais configurable jusqu’à 3G. C’est virtual mémoire, juste une réservation.
- 1K par classe environ donc un million de classes max
- Uniquement quand on utilise compressed oops
- Uniquement pour Java heap size de 32G max
Cryostat 2.0 (18 Oct 2021)
- Fournit une API sécurisée pour profiler et monitorer les applis Java dans les containers avec Java Flight Recorder
- Cryostat peut récupérer, stocker et analyser les enregistrements flight recorder des containers
- Ensuite consommé par Grafana ou l’appli JDK Mission Control desktop
- Fichier reste local au container par défaut donc pas pratique
- Connection via JMX directe pas pratique ni secure par défaut
- Cryostat récupère les recording via HTTPS
- A un opérateur kubernetes
- Etc
Microsoft augmente ses investissements dans Java. (4 Nov 2021)
- Microsoft rejoints le JCP
- Travaille sur VSCode for Java avec Red Hat
- Est OK avec le LTS passant à 2 ans et va aider à supporter ces releases plus fréquentes
Librairies
Micronaut 3.1 (11 Oct 2021)
- support d’applications utilisant JDK 17
- améliorations d’injections de dépendances (repeatable scopes, primitive beans, etc)
- les classes générées sont plus petites et amélioration de consommation mémoire sous GraalVM
- routes HTTP par regexp
- random port binding (pour les conflits de tests)
- Changement certificats TLs via refresh sans arrêter le serveur
- Kotlin coroutines supportées dans micronaut data
- extension de la couverture de support JPA (par exemple attribute converter)
- support des informers Kubernetes via le Kubernetes SDK
- integration Oracle Coherence sortie du mode preview
Quarkus 2.4 (27 Oct 2021)
- Hibernate Reactive 1.0.0.Final
- Introducing Kafka Streams DevUI (c’est cool pour développer ça et savoir ce qui se passe)
- Support continuous testing for multi module projects
- Support AWT image resize via new AWT extension
Lightbend lâche Play Framework (20 Oct 2021)
- lightbend construit sur Scala, Akka, et Play Framework
- C’est le moment de la 2.0 je crois
- Mais avec le cloud, ils veulent se focaliser sur les systèmes distribués
- Akka Open Source et Akka Serverless (leur PaaS)
- Laisse Play à la communauté et Lightbend arrête d’investir dedans
- Dans une orga séparée
- Besoin de sponsors et de contributeurs
- Question : ils n’avaient pas déjà arrêté Scala ?
Lightbend se désinvesti de Lagom aussi (27 Oct 2021)
- Lagom effacé par Akka Platform et Akka Serverless
- Trop de contraintes limitantes dans le framework
- Mais si client de Lightbend, supporté sur Lagom mais sans nouvelle fonctionnalité
Infrastructure
Installer et utiliser podman-machine sur macOS (19 Oct 2021)
- La virtualisation s’appuie sur qemu et met en place une VM dans laquelle les pods tournent.
- Podman Machine pour installer une VM Linux avec les outils
- fonctionne aussi sous Linux pour ceux qui ne supportent pas Podman ou pour sandboxer
- fonctionne sous M1
- Homebrew pour l’installation
- comme Docker Machine avant en gros
- il y a aussi une belle présentation de Devoxx France
Cloud
Amazon déclaré la guerre à Microsoft en utilisant les arguments “Propriétaire” (28 Oct 2021)
- Aurora a un front qui sait parler le protocole Microsoft SQL Server (Babelfish pour Aurora PostgreSQL).
- Et convertit les T-SQL
- Open source le T-SQL vers Postgres (debug), sous license ASL
- Pas tout open sourcé encore
Web
CORS expliqué (12 Oct 2021)
- inclue images d’autres sites, c’est l’origine
- les cookies, credentials… étaient envoyés
- Yahoo Mail pouvait filer les credentials des utilisateurs
- une iFrame pouvait lire le contenu d’une autre iFrame (Netscape met en place le Cross-Frame Scripting)
Access-Control-Allow-Origin: *
est ok si pas de données privées
Rendre une page HTML brute jolie en 100 caractères de CSS (16 Oct 2021)
- basique, mais expliqué ligne par ligne
- 60-80 caractères pour la lecture
- Et 100 bytes de plus pour améliorer
Data
Elasticsearch 8.0 will require java 17 (3 Nov 2021)
- definitely easier for something standalone than a library or anything that needs to share the JDK with all its apps
- PR GitHub
Hibernate Reactive 1.0.0, ça vaut le coup ? (27 Oct 2021)
- PostgreSQL, MySQL, MariaDB, Db2, SQL Server, and CockroachDB
- Bases de donnés désignées pour des interactions classiques
- Donc les constructions haut niveau ont tendances à être limitées par le protocole sous-jacent ce qui ne se voyait pas ou peu en JDBC
- Utiliser HR si votre appli est déjà réactive au cœur (par exemple RESTEasy reactive dans Quarkus ou une appli Vert.x)
- Compare perfs avec Techempower mais avec angle latence à un volume donné et pas throughout max
- 20 requêtes d’affilée 20k request/s → 35k sous 10 ms de latence. C’est la valeur relative qui est intéressante
- Une requête et du processing pour rendre au client, peu de différence
- Throughput tend à être meilleur
- Amélioration de réactive sur un an
- Un vidéo cast sur le sujet
Outillage
AtomicJar se lance dans une offre Cloud (04 Nov 2021)
- les containers de test containers ne tournent plus en local
- Mais dans le cloud de AtomicJar
- A plus de spores source qu’une machine locale typique (2 cores et 8GB ram pour la docker machine)
- peut utiliser la machine quand les tests tournent
- Pour CI limitées vs containers ou les cloud IDE pour pas trop dépenser
- Pas de problème avec M1
- Un petit binaire à installer (par exemple via curl)
- TestContainers et Quarkus : TestContainer Cloud fonctionne avec Dev Service (les containers lancés et configurés automatiquement)
- Encore en cours de développement (beta privée, on peut demander une invitation)
Méthodologies
Canary releases ou avoir des testeurs (04 Nov 2021)
- Canary release est une release en prod, mais sur un petit sous ensemble des utilisateurs
- Peut aider à voir si une nouvelle fonctionnalité intéresse les utilisateurs avant de commiter sur le long terme
- Toujours option du retour arrière
- Donc peut-on réduire les tests internes ?
- Risque de réputation ou abandon utilisateur (acquisition et rétentions sont chères)
- Tests automatisés compréhensifs permettent le risque de canary
- Tests exploratoires pour compléter les tests automatiques
Loi, société et organisation
Le droit à decompiler pour corriger des erreurs confirmé légal (21 Oct 2021)
- Arrêt du 6 octobre 2021
- Pour corriger une erreur affectant le fonctionnement y compris via la désactivation d’une fonction affectant le bon fonctionnement de l’application
Influence de l’amplification algorithmique sur le contenu politique (21 Octo 2021)
- Les recommendations algorithmiques amplifient-elles le contenu politique ?
- Dans le cas des timeline organisées algorithmiquement et pas reverse chronologique
- Est-ce que ça varie entre partis politiques ou groupes politiques
- Des sources de nouvelles plus amplifiées que d’autre
- Les élus sont plus amplifiés que le contenu politique général
- Pas d’amplification particulière d’individus ces d’autres au sein du même parti ????
- La droite tend à avoir une amplification plus importante que la gauche
- Les sources de nouvelles orientées à droite sont aussi plus amplifiées que celles de gauche
- La méthodologie est détaillée sur par exemple ce qu’est un journal de droite
- Pourquoi c’est amplifié différemment est une question plus difficile à répondre
- Amplification n’est pas mauvaise par défaut, mais elle l’est si elle amène à un traitement préférentiel dû à l’algorithme (vs comment les gens interagissent sur la plateforme)
- Le PDF de l’étude intégrale
Conférences
DevFest Lille le 19 novembre 2021
Devoxx France du 20 au 22 avril 2021
SunnyTech les 30 juin et 1er juillet 2022 à Montpellier
Nous contacter
Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs
Faire un crowdcast ou une crowdquestion
Contactez-nous via twitter https://twitter.com/lescastcodeurs
sur le groupe Google https://groups.google.com/group/lescastcodeurs
ou sur le site web https://lescastcodeurs.com/