LCC 267 - Lagom efface sa dette technique

Published: Nov. 15, 2021, 10:01 a.m.

b'

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\\xe9 le 12 novembre 2021

T\\xe9l\\xe9chargement de l\\u2019\\xe9pisode LesCastCodeurs-Episode\\u2013267.mp3

News

Langages

Blog sur les extraits de code dans les JavaDocs (18 Oct 2021)

  • C\\u2019est plus agr\\xe9able \\xe0 utiliser que les balises pre, pas besoin d\\u2019escaping (pour < et >), l\\u2019espace \\xe0 gauche est normalis\\xe9
  • On peut mettre en valeur certaines portion, ou remplacer par une expression r\\xe9guli\\xe8re certains bouts
  • Et on peut \\xe9galement externaliser d\\u2019o\\xf9 vient l\\u2019extrait de code, au lieu de le mettre dans la JavaDoc, on peut r\\xe9f\\xe9rencer une r\\xe9gion de son vrai code.
  • Donc au moins, on est s\\xfbr que c\\u2019est du code valide et qui compile \\xe9videmment
  • Gunnar explique comment reprendre le code provenant de nos classes de test, pour le faire appara\\xeetre dans les JavaDocs, cr\\xe9ant ainsi une vraie documentation \\u201cex\\xe9cutable\\u201d

Compress class space (27 Mars 2019)

  • compressed object ou class pointer sur 64buts en 32 bits vis adresse relative
  • due adresse relative, la Klass structure dans le metaspace doit \\xeatre m\\xe9moire contigu\\xeb et pr\\xe9 allou\\xe9e initialement (risque de non reallocation si m\\xe9moire libre non contigu\\xeb )
  • Donc le classpart et le non class part s\\xe9par\\xe9s dans le meta space. Klass is 32G max et contigu\\xeb et la klass part est appel\\xe9 compressed class space
  • Par d\\xe9faut 1G mais configurable jusqu\\u2019\\xe0 3G. C\\u2019est virtual m\\xe9moire, juste une r\\xe9servation.
  • 1K pas classe environ donc 1000000 de classes max
  • Que quand on utilise compressed oops
  • Que pour Java heap size de 32G max

Cryostat 2.0 (18 Oct 2021)

  • Fournit une API s\\xe9curis\\xe9e pour profiler et monitored les applis Java dans les containers avec Java Flight Recorder
  • Cryostat peut r\\xe9cup\\xe9rer stoquer et analyser les enregistrements flight recorder de containers
  • Ensuite consomm\\xe9 par graphana ou l.appli JDK Mission Control desktop
  • Fichier reste local au container par d\\xe9faut donc pas pratique
  • Connection via JMX directe pas pratique ni secure par d\\xe9faut
  • Cryostat r\\xe9cup\\xe8re les recording via HTTPS
  • A un op\\xe9rateur 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 \\xe0 2 ans et va aider \\xe0 supporter ces releases plus fr\\xe9quentes

Librairies

Micronaut 3.1 (11 Oct 2021)

  • support d\\u2019applications utilisant JDK 17
  • am\\xe9liorations d\\u2019injections de dependances (repeatable scopes, primitive beans, etc)
  • les classes g\\xe9n\\xe9r\\xe9es sont plus petites et am\\xe9lioration de consommation m\\xe9moire sous GraalVM
  • routes HTTP par regexp
  • random port binding (pour les conflits de tests)
  • Changement certificats TLs via refresh sans arreter le serveur
  • Kotlin coroutine support\\xe9es dans micronaut data
  • extension de la couverture de support JPA (e.g. 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\\u2019est cool pour d\\xe9velopper ca et savoir ce qui se passe
  • Support continuous testing for multi module projects
  • Support AWT image resize via new AWT extension

Lightbend l\\xe2che Play Framework (20 Oct 2021)

  • lightbend construit sur Scala, akka, et play framework
  • C\\u2019est le moment de la 2.0 je crois
  • Mais avec le cloud, ils veulent se focaliser sur les syst\\xe8mes distribu\\xe9s
  • Akka Open Source et Akka Serverless (leur PaaS)
  • Laisse Play \\xe0 la,communit\\xe9 et lightbend arr\\xeate d\\u2019investir dedans
  • Dans une orga s\\xe9par\\xe9e
  • Besoin de sponsors et de contributeurs
  • Question: ils n\\u2019avaient pas d\\xe9j\\xe0 arr\\xeat\\xe9 Scala?

Lightbend d\\xe9veste de Lagom aussi (27 Oct 2021)

  • Lagom effac\\xe9 par akka Platform\\u2019et Akka Serverless
  • Trop de contraintes limitantes dans le framework
  • Mais si client de Lightbend, support\\xe9 sur Lagom mais sans nouvelle fonctionnalit\\xe9

Infrastructure

Installer et utiliser podman-machine sur macOS (19 Oct 2021)

  • La virtualisation s\\u2019appuie 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 qu ne supportent pas podman ou pour sandboxer
  • fonctionne sous M1
  • homebrew pour l\\u2019installation
  • comme docker machine avant en gros
  • il y a aussi une belle pr\\xe9sentation de Devoxx France

Cloud

Amazon d\\xe9clar\\xe9 la guerre \\xe0 Microsoft en utilisant les arguments \\u201cProprietaire\\u201d (28 Oct 2021)

  • Aurora a un font qui parler protocole SQL server (Babelfish pour Aurora PostgreSQL).
  • Et convertit les T-SQL
  • Open source the t sql vers Postgres (debug). Sous license ASL
  • Pas tout open sourc\\xe9 encore

Web

CORS expliqu\\xe9 (12 Oct 2021)

  • inclue images d\\u2019autres sites, c\\u2019est l\\u2019origine
  • les cookies, credeitials etc etaient envoy\\xe9s
  • yahoo mail pouvait filer les credentials des utilisateurs
  • une iFrame pouvait lire le contenu d\\u2019une autre iFrame (Netscape met en place le Cross-Frame Scripting)
  • Access-Control-Allow-Origin: * est ok si pas de donn\\xe9es priv\\xe9es

Rendre une page HTML brute jolie en 100 caract\\xe8res de CSS (16 Oct 2021)

  • basique mais expliqu\\xe9 ligne par ligne
  • E.g. 60\\u201380 caract\\xe8res pour la lecture
  • Et 100 bytes de plus pour am\\xe9liorer

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, \\xe7a vaut le coup ? (27 Oct 2021)

  • PostgreSQL, MySQL, MariaDB, Db2, SQL Server, and CockroachDB
  • bases de donn\\xe9s d\\xe9sign\\xe9es pour des interactions classiques
  • Donc les constructions haut niveau ont tendances \\xe0 \\xeatre limit\\xe9es par le protocole sous-jacent ce qui ne se voyait pas ou peu en JDBC
  • utiliser HR si votre appli est d\\xe9j\\xe0 r\\xe9active au c\\u0153ur (e.g. RESTEasy reactive dans Quarkus ou une appli Vert.x)
  • Compareperfs acec techempower mais avec angle latence \\xe0 un volume donn\\xe9 et et pas throughout max
  • 20 requ\\xeates d\\u2019affil\\xe9e 20k request/s -> 35k sous 10ms de latence. C\\u2019est la valeur relative qui est int\\xe9ressante
  • Une requ\\xeate et du processing pour rendre au client, peu de diff\\xe9rence
  • Toruhghput tend \\xe0 \\xeatre meilleur
  • Am\\xe9lioration de r\\xe9active sur un an
  • Un vid\\xe9o 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\\u2019une machine locale typique (2 cores et 8GB ram pour la docker machine)
  • peut utiliser la machine quand les tests tournent
  • Pour CI limit\\xe9es vs containers ou les cloud IDE pour pas trop d\\xe9penser
  • Pas de probl\\xe8me avec M1
  • Un petit binaire \\xe0 installer (eg via curl)
  • TestContainers et Quarkus: TestContainer Cloud fonctionne avec Dev Service (les containers lanc\\xe9s et configur\\xe9s automatiquement)
  • Encore en cours de d\\xe9veloppement (beta priv\\xe9e et on peut demander invitation)

M\\xe9thodologies

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 a voir si une nouvelle fonctionnalit\\xe9 int\\xe9resse les utilisateurs avant de commiter sur le long terme
  • Toujours option du retour arri\\xe8re
  • Donc peut on r\\xe9duire les tests internes ?
  • Risque de r\\xe9putation ou abandon utilisateur (acquisition et r\\xe9tentions sont ch\\xe8res)
  • Test automatis\\xe9s compr\\xe9hensifs permettent le risque de canary
  • Test exploratoires pour compl\\xe9ter les tests automatiques

Loi, soci\\xe9t\\xe9 et organisation

Le droit \\xe0 decompiler pour corriger des erreurs confirm\\xe9 l\\xe9gal (21 Oct 2021)

  • arr\\xeat du 6 octobre 2021
  • Pour corriger une erreur affectant le fonctionnement y compris via la d\\xe9sactivation d\\u2019une fonction affectant le bon fonctionnement de l\\u2019application

Influence de l\\u2019amplificartion algorithmique sur le contenu politique (21 Octo 2021)

  • les recommendations algorithmiques amplifient-elle le contenu politique ?
  • dans le cas des timeline organis\\xe9es algorithmiquement et pas reverse chronologique
  • Est-ce que \\xe7a varie entre partis politiques ou groups politiques
  • Des sources de nouvelles plus amplifi\\xe9es que d\\u2019autre
  • Les \\xe9lus sont plus amplifi\\xe9s que le contenu politique g\\xe9n\\xe9ral
  • Pas d\\u2019amplification particuli\\xe8re d.individus ces d\\u2019autres au sein du m\\xeame parti ????
  • La,droite tend \\xe0 avoir une amplification plus importante que la gauche
  • Les sources de nouvelles orient\\xe9es \\xe0 droite sont aussi plus amplifi\\xe9es que celles de gauche
  • La m\\xe9thodologie est d\\xe9taill\\xe9e sur par exemple ce qu\\u2019est un journal de droite
  • Pourquoi c\\u2019est amplifi\\xe9 diff\\xe9remment est une question plus difficile \\xe0 r\\xe9pondre
  • Amplification n\\u2019est pas mauvaise par d\\xe9faut mais elle l\\u2019est si elle am\\xe8ne \\xe0 un traitement pr\\xe9f\\xe9rentiel du \\xe0 l\\u2019algorithme (vs comment les gens interagissent sur la plateforme)
  • Le PDF de l\\u2019\\xe9tude int\\xe9grale

Conf\\xe9rences

DevFest Lille le 19 novembre 2021
Devoxx France du 20 au 22 avril 2021
SunnyTech les 30 juin et 1er juillet 2022 \\xe0 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/

'