Le podcast Java en Français

Les Cast Codeurs est un podcast en français de, par et pour les développeurs.

Prenez connaissance des dernières nouvelles de la sphère Java et du développement en général. Plongez sur un sujet précis avec les épisodes interview.

Supportez les radotages de vos hôtes : Emmanuel Bernard (JBoss, Hibernate), Arnaud Héritier (Doctolib, Jenkins), Guillaume Laforge (Google, Groovy), Antonio Goncalves (Microsoft, auteur), Vincent Massol (XWiki, Maven), Audrey Neveu (Reactor/Spring, Devoxx4Kids). Katia Aresti (Red Hat, Infinispan).

LCC 269 - Log4J devient Turing-complet

Posté le 23/12/2021

Antonio et Guillaume discutent de nouvelle crèmerie, des fêtes de fin d’années, des cadeaux du père Noël, et… de log4j, le feuilleton de fin d’année !

Enregistré le 20 décembre 2021

Téléchargement de l’épisode LesCastCodeurs-Episode-269.mp3

News

Décès de Stéphane Maldini (14 Dec 2021)

  • Une triste nouvelle pour commencer l’épisode avec l’annonce du décès soudain de Stéphane Maldini
  • Un acteur de l’écosystème Grails à la fin des années 2000, grâce à de nombreux plugins
  • Mais plus connu pour avoir cofondé le project Reactor, et popularisé le Reactive Programming au sein de la communauté Java
  • Également à l’origine de R2DBC pour rendre l’accès aux bases de données plus réactif
  • Après de nombreuses années chez Pivotal, il avait rejoint plus récemment Netflix, et c’est peut-être en partie grâce à lui que vous pouviez matter plein de séries !

CloudBees clot un tour de table de 150 millions de dollars valorisant l’entreprise à 1 milliard de dollars

Le feuilleton Log4j2 (9 Dec 2021)

  • Grosse faille de sécurité liée à l’utilisation des versions <2.15 de Log4j2
  • Découverte par un chercheur en sécurité d’Alibaba Cloud
  • Détails publiés par LunaSec
    • Log4j2 permet de faire de l’interpolation de texte en remplaçant des parties variables d’un message à logguer
    • Hors il est possible d’ajouter des appels à des informations JNDI provenant d’un serveur LDAP
    • Un serveur LDAP peut retourner une classe compilée que JNDI va exécuter en local lorsque Log4j2 va vouloir insérer l’information JNDI
    • Donc potentiellement, la classe distante exécutée localement pourra exfiltrer des données, avoir accès aux processus qui tournent, etc.
  • Log4j2 a été patché rapidement, mais d’autres failles sont apparues
  • Différentes stratégies de mitigations ont été publiées
  • Snyk a publié une “cheat sheet” pour remédier à la faille

Langages

Kotlin à l’assaut du K2 avec son nouveau compilo (11 Nov 2021)

  • Lors de sa conférence Kotlin 2021 Premier annoncent des nouveautés autour du langage
  • Le nouveau compilateur plus rapide K2
    • qui sert dorénavant de base pour toutes les plateformes cibles supportées
    • qui apporte une nouvelle API pour créer des extensions au compilateur
    • utilise un langage intermédiaire (IR) au lieu de compiler directement en natif
    • avec un nouveau frontal avec sa propre représentation intermédiaire qui permet de simplifier la compréhension du langage dans les IDEs, pour désugariser le sucre syntaxique
    • rapidité accrue potentiellement jusqu’à 2 fois
  • Le support de WebAssembly avec Kotlin/WASM
    • Kotlin/JS continue d’exister, pour des applis Web, pour l’intégration JavaScript
    • mais Kotlin/WASM apporte le support natif de WebAssembly
  • Kover, un nouveau plugin de couverture de code pour Kotlin/JVM, utilisable avec un plugin Gradle, compatible avec JaCoCo
  • Le Kotlin Symbol Processor, KSP, drivé par Google, est maintenant stable, plus rapide, plus ergonomique d’utilisation (remplace Kapt)

Groovy 4, on y est presque !

  • Sortie de la release candidate de Groovy 4, la finale est proche !
  • Changement des coordonnées Maven pour passer à org.apache.groovy (bye bye Codehaus)
  • Suppression de vieilles coordonnées de packages ou classes mal-situées, à cause des modules Java (XmlSlurper, XmlParser, AntBuilder, GroovyTestCase)
  • Le module groovy-yaml est rajouté au pom groovy-all et le module groovy-testng devient optionnel
  • Le vieux parseur basé sur Antlr2 est supprimé et le parseur introduit dans Groovy 3, “parrot”, reste le seul parseur
  • Le bytecode généré n’utilise plus que l’instruction invokedynamic partout où c’est possible
  • Support des expressions switch
  • Support des sealed types
  • Incubation du support des records
  • Inclusion de type-checkers, par exemple avec le premier pour valider les expressions régulières à la compilation
  • Inclusion de macro pour faciliter le débogage
  • Intégration de JavaShell dans la console Groovy pour faciliter les expérimentations cross-language
  • Nouvelle annotation @POJO pour créer des POJO Java, sans la surcharge de bytecode spécifique à Groovy (pratique pour la compilation statique)
  • Incubation de design by contract avec l’intégration de l’ancien module GContracts
  • GINQ (Groovy Integrated Query) qui propose un langage proche de SQL, similaire à LINQ en .Net, pour faciliter le travail avec les collections
  • Incubation du support pour le langage de configuration TOML

Trisha Gee partage ses nouvelles Java annotés pour le mois de décembre (3 Dec 2021)

Librairies

Nouvelle paire de bottes 2.6 pour Spring Boot (19 Nov 2021)

  • Support des attributs SameSite sur les cookies de session cookies pour les applications à base de servlet
  • Support pour configurer les health groups sur le port principal ou de management
  • Amélioration du endpoint /info avec des infos sur le runtime Java
  • Support pour tester les applis Spring MVC en utilisant WebTestClient
  • Auto-configuration de spring-rabbit-stream
  • Support pour des règles personnalisées de nettoyage/filtrage des propriétés dans /env et configprops

Micronaut 3.2 (23 Nov 2021)

  • Nouvelle version de Micronaut
  • Passage de GraalVM à la version 21.3 avec le support de JDK 17 (il faut maintenant développer a minima avec la distribution GraalVM JDK 11 et non plus 8)
  • Version 3 du plugin GraalVM pour Gradle
  • Support de Kotlin 1.6
  • Fonctionnalités HTTP
    • Annotation @JsonView sur les paramètres annotés @Body
    • Timeout configurable pour le handshake SSL
    • Support amélioré du server push HTTP/2 pour envoyer les resources en parallèle
    • Amélioration WebSocket avec le paramètre WebSocketPongMessage pour l’annotation @OnMessage pour répondre au Ping des WebSockets
    • Support du protocole WS/WSS des WebSockets
  • Différentes mises à jour des modules fonctionnels (Data, Security, Reactive, OpenAPI, Kubernetes, ElasticSearch)

Cédric Champeau compare Gradle et Maven niveau composition et héritage (1 Dec 2021)

  • Gradle et Maven prennent l’approche de “convention over configuration”
  • Couvre les approches différentes entre Gradle et Maven : Maven prends une approche plutôt héritage, tandis que Gradle l’approche composition
  • Les plugins Gradle sont plus faciles à maintenir grâce à la composition et permet de créer ses propres conventions

Infrastructure

GitHub collabore à la sécurité des packages NPM (15 Nov 2021)

  • GitHub est un des stewards du registre des packages NPM
  • GitHub partage des détails sur les incidents de sécurités récents
    • malwares injectés récemment dans ua-parser-js, coa, et rc car un tiers avait réussi à usurper le compte d’un contributeur
    • temporairement, les packages privés étaient potentiellement découvrables sur le réplica de npmjs.com
    • une faille qui a été découverte grâce à un bug bounty qui permettait de publier des versions de certains modules avec des comptes mal-sécurisés
  • GitHub investit dans la sécurité, en particulier en rendant obligatoire la 2-factor-authentication pour les administrateurs et admins des packages les plus populaires hébergés sur GitHub, en rajoutant de la détection de malwares automatique

Jérôme Petazzoni et les anti-patterns Docker (30 Nov 2021)

  • Jérôme partage une liste d’anti-patterns qu’il voit fréquemment quand il aide les gens à construire leurs images de conteneur
  • Parmi les anti-patterns :
    • les trop grosses images, comment les optimiser, comment monter des volumes plutôt que d’inclure de gros dataset dans l’image
    • les trop petites images, mais attention, car parfois on ne peut pas investiguer plus finement ce qui s’y passe
    • utilisation de zip et tar, mieux vaut éviter de compresser pour ne pas utiliser trop de CPU ou d’espace dans l’image
    • re-builder les bases communes : autant mettre l’image de base dans un registry, plutôt que de la re-construire à chaque fois
    • construire l’image à partir d’un monorepo géant et comment organiser ses sources et la localisation de son Dockerfile avec chaque projet
    • ne pas utiliser BuildKit
    • avoir besoin de rebuilder pour chaque changement minime
    • utiliser des scripts customs au lieu des outils existants comme Compose, Skaffold, Tilt et faire ses propres sh
    • obliger les gens à faire tourner certaines choses dans des conteneurs alors que ça peut très bien tourner en local sur la machine du développeur
    • utilisation d’outils trop complexes, autant utiliser des outils appropriés
    • conflit de noms entre scripts et images
    • builder dans des Dockerfiles

Cloud

Le runtime Java pour Google App Engine en Open Source (16 Dec 2021)

  • Toujours dans un esprit d’ouverture pour éviter le lock-in, Ludovic Champenois qui dirige le runtime Java de Google App Engine Java a open sourcé les sources du runtime, du SDK.

Azure : comment les développeurs migrent leurs applis Spring Boot dans le Cloud (2 Dec 2021)

  • Cible en majorité Kubernetes, 2x plus que sur des VMs
  • Challenges spécifiques Spring rencontrés
    • Passer d’un monolith à une version cloud-friendly
    • Migrer d’anciennes versions des composants Spring Cloud
    • Migrer d’anciennes versions de Spring Boot
    • Migrer de servlet vers Boot
  • Migration de Java vers Spring Boot
    • Java vers Boot
    • Java EE vers Boot
    • Spring Framework vers Spring Boot
    • Mainframe vers Spring
  • Challenges spécifiques au Cloud
    • Migration de base de données
    • Monitoring end-to-end
  • Outils d’APM les plus fréquents
    • Outils du provider cloud
    • Prometheus
    • Dynatrace
    • AppDynamics
  • End-to-End monitoring
    • Splunk
    • Elastic
    • Outil du provider cloud
  • Composants Spring les plus fréquemment utilisés
    • Spring Cloud Config Server
    • Spring Cloud Gateway
    • Spring Cloud Service Registry
    • Spring Cloud Load Balancer
    • Spring Cloud Circuit Breaker (Resilience4J)

Web

CSS défensif (7 Dec 2021)

  • Ahmad Shadeed partage de bonnes pratiques CSS, comment écrire du CSS propre, sans comportement bizarroïde suivant les navigateurs, ou qui répond bien de manière responsive
  • Avec des exemples sur l’utilisation de Flexbox, de l’espacement, la gestion du contenu long (et donc du clipping), de l’apparence des images suivant la taille de la fenêtre, les media queries en vertical, le texte au-dessus des images, la gestion des scrollbars.

Le custom CSS Reset de Josh Comeau (23 Nov 2021)

  • Josh Comeau partage une nouvelle version de CSS Reset, non-opinionated pour ce qui est design et cosmétique, mais qui prends certains partis pris (par exemple de l’italique reste italique)
  • Couvre en détail chaque aspect : le box-sizing, les marges par défaut, la hauteur de ligne, des hauteurs basées sur les pourcentages, rendre les polices antialiasées, le word wrapping pour la gestion du retour à la ligne

Google Fonts propose des articles sur l’utilisation des polices de caractères (7 Dec 2021)

  • Elliot Jay Stocks a participé à la base de connaissance et d’articles du Google Fonts Knowledge
  • Introduction à la typographie, comment choisir une bonne taille d’interligne, comprendre les mesures des caractères et des lignes
  • Comment choisir une typographie et une police de caractères
  • Un glossaire sur les termes relatifs aux polices de caractères, à la typographie

Outillage

JetBrains annonce Fleet un nouvel IDE (29 Nov 2021)

  • Développé from scratch
  • Basé sur l’experience de 20 ans à developer des IDEs
  • Fleet utilise le code-processing d’IntelliJ (polyglot)
  • Nouvelle interface graphique
  • Basé sur la librairie graphique 2D Skia (utilisée dans Chrome, Flutter, Android, Firefox…)
  • Rapide et léger (démarre en quelques secondes)
  • Architecture distribuée (tourne sur le PC, remote PC, dans le Cloud)
  • Early Preview, pas encore accessible publiquement à tout le monde

Mac: display_manager et Rectangle (29 Nov 2021)

  • display_manager permet de scripter en ligne de commande la configuration des résolutions des écrans (interne ou externe), de changer la luminosité, la densité de pixel, la fréquence de rafraichissement
  • Rectangle : cette petite application propose des raccourcis clavier pour positionner et retailler les fenêtres, pour les mettre rapidement en plein écran, à gauche/à droite, en quart, en tiers
  • Hammerspoon qui permet d’automatiser mac OS, en rajoutant des raccourcis clavier, en réagissant à des événements comme le branchement d’un appareil sur un port USB, le fait de rejoindre un réseau Wifi

Loi, société et organisation

Un document du FBI liste les données des messageries chiffrées pouvant être récupérées (30 Nov 2021)

  • Même si le contenu des messages n’est pas récupérable, des informations de type méta-données peuvent l’être (date de dernière connection ou de création du compte, avatar, clé publique ou token, nombre de messages postés)

Conférences

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/


LCC 268 - Interview sur GraalVM avec Gilles Duboscq - partie 2

Posté le 01/12/2021

Gilles Duboscq de OracleLabs discute des multiples facettes du projet GraalVM avec Emmanuel. La partie 2 nous emmène vers GraalVM Native image, comment utiliser GraalVM en pratique en fonction des différents usages discutés, les versions, la communauté, comment c’est fait sous le capot et plein d’autres choses encore. Si vous n’avez pas écouté la partie 1, je vous encourage à le faire.

Enregistré le 16 septembre 2021

Téléchargement de l’épisode LesCastCodeurs-Episode-268.mp3

Interview

Ta vie, ton œuvre

Twitter de Gilles

Les concepts clés

La plupart des concepts sont couverts dans la partie 1. La partie 2 fini sur la compilation native avant de passer à la suite.

Native:

  • comment ça fonctionne
  • Un JIT?
  • quel GC
  • Quels avantages
  • Quels inconvénients?

Donc GraalVM c’est une JVM, quelles parties sont reprises de OpenJDK ?

Comment on l’utilise en pratique

Je veux utiliser GraalVM pour mon code nodeJS, je fais comment ?
Je veux utiliser GraalVM comme ma JVM de mon appli Java, je fais comment ?

Je veux faire du native, comment je fais ?

  • concrètement, je dois faire gaffe à quoi ?

GraalVM Community vs Enterprise, quelles sont les différences ?

Sous le capot

Comment on implémente un nouveau langage sur GraalVM ?

Comment on implémente Java sur Java
C’est dur de supporter des nouveaux langages avec leur sémantique et leurs types != de la JVM

Comment l’interprétation de langages s’optimise

Comment les optimisations sont construites ?
Des trucs cools à raconter sur les optimisations ?

C’est un chemin de combien d’années ?

WASM vs GraalVM, comment vous voyez la “standardisation de la VM” derrière WASM ?

La communauté et le futur

Quelle license ?
C’est juste Oracle ?
Pourquoi c’est pas dans OpenJDK ?
Comment la communauté code ensemble ?

Des idées sur là où vous voulez aller ?

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/


LCC 267 - Lagom efface sa dette technique

Posté le 15/11/2021

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/


LCC 266 - Interview sur GraalVM avec Gilles Duboscq - partie 1

Posté le 22/10/2021

Gilles Duboscq de OracleLabs discute des multiples facettes du projet GraalVM avec Emmanuel. Dans cette première partie, nous discutons de l’histoire de GraalVM, de ses concepts fondamentaux et nous zoomons sur Truffle, Polyglot et Espresso, le support de JavaScript, Ruby, R, Python, LLVM, WASM… et Java dans GraalVM. La partie 2 nous emmènera vers GraalVM Native image, comment utiliser GraalVM en pratique en fonction des différents usages discutés, les versions, la communauté, comment c’est fait sous le capot et plein d’autres choses encore.

Enregistré le 16 septembre 2021

Téléchargement de l’épisode LesCastCodeurs-Episode-266.mp3

Interview

Ta vie, ton œuvre

Twitter de Gilles

GraalVM pour comprendre l’enjeu

GraalVM

GraalVM en 3 phrases
Les cas d’utilisation typique

Maxine VM

Les concepts clés

Graal le compilateur et le JIT

  • c’est quoi un JIT
  • Pourquoi pas basé sur HotSpot
  • Pourquoi en Java ?
  • des cas d’utilisations préférés par GraalVM JIT vs HotSpot (et vice versa)

Truffle et polyglot

  • Java qui tourne d’autres langages, lesquels ?
  • comment ça marche, génère du byte code ? Interprète ?
  • Comment les codes de différents langages interagissent ?

JavaScript, Ruby, R, Python, LLVM, WASM… et Java
Arbre syntaxique

Espresso:

  • Java sur Java (what??!), ca veut dire quoi exactement?
  • Quels usages?
  • niveau de stabilité, maturité ?

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/


LCC 265 - Chérie, ça va couper

Posté le 13/10/2021

Dans ce nouvel épisode news, Arnaud, Emmanuel et Audrey reviennent sur les annonces d’Oracle concernant le JDK, sur Spring One, mais aussi sur les petites fuites de données et autre panne généralisée qui ont fait l’actu récemment.

Enregistré le 8 octobre 2021

Téléchargement de l’épisode LesCastCodeurs-Episode-265.mp3

News

Langages

Oracle annonce des LTS de deux ans

  • Donc une LTS tous les 2 au lieu de 3 ans, ce qui fait que la prochaine sera la 21 et pas la 23.
  • Une enquête récente auprès de développeurs montre qu’entre un quart et la moitié utilisent les release de six mois en dev, mais moins de la moitié d’entre eux en prod
  • Mais pas de détail sur le temps de security patch support gratuit. Oracle en payant, c’est 8 ans

Oracle offre Oracle JDK gratuitement avec support pendant 1 LTS + 1 an (donc 3 ans)

  • Java 17 et +
  • Redistribution gratuite aussi. Pas de click through.
  • Sous license NFTC (“Oracle No-Fee Terms and Conditions”).
  • Ils en ont marre d’avoir de la compétition ?

Dans JDK 18, avec le JEP 400, le charset par défaut va enfin passer à UTF-8

  • Autant ce n’était plus vraiment un problème pour les systèmes sous mac OS ou Linux, qui utilisent depuis assez longtemps UTF-8 par défaut, mais c’est surtout pour les systèmes Windows où c’est plus problématique
  • Dans JDK 17, la propriété système System.getProperty("native.encoding") avait été introduite si on veut lire par exemple un fichier avec
  • Deux approches de mitigation pour les problèmes de compatibilité,
    • en recompilant et en utilisant cette propriété quand on ouvre un fichier
    • en utilisant -Dfile.encoding=COMPAT sans recompilation, qui gardera le même comportement qu’en JDK 17 et avant
  • L’équipe d’Oracle suggère de tester ses applications avec -Dfile.encoding=UTF-8 pour voir s’il n’y a pas de soucis

Librairies

JUnit 5.8

  • les classes de test peuvent être ordonnées avec la Class Order API (par nom de classe, nom d’affichage, avec @order ou random)
  • les classes de test imbriquées peuvent l’être avec @TestClassOrder
  • @ExtendWith peut maintenant être utilisé pour enregistrer des extensions via des champs ou des paramètres de méthode (constructeur, méthodes de test ou lifecycle)
  • @RegisterExtension peut maintenant être utilisé sur des champs privés.
  • assertThrowsExactly version plus stricte de assertThrows
  • assertDoesNotThrow supporte les suspending functions Kotlin
  • assertInstanceOf produit de meilleurs messages d’erreurs (remplacement pour assertTrue(obj instanceof X))
  • assertNull comporte maintenant le type de l’object si sa méthode toString retourne null pour éviter les messages de type expected <null> but was <null>
  • @TempDir
    • peut maintenant être utilisé pour créer plusieurs répertoires temporaires (le retour au mode par context peut être fait par configuration)
    • fait un reset des permissions read and write du répertoire racine et de tous les répertoires contenus plutôt que d’échouer à les supprimer
    • peut maintenant être utilisé sur des champs private
  • Nouvel UniqueIdTrackingListener qui va générer un fichier contenant les identifiants des tests exécutés et qui peut être utilisé pour re-exécuter ces tests dans une image GraalVM par exemple.

Stephen Colebourne avertit les utilisateurs de Joda Time de ne pas mettre à jour la base de données des fuseaux horaires

  • Les personnes qui sont responsables de cette base de données veulent fusionner certaines zones ensemble, par exemple, Oslo et Berlin. Alors que ces deux villes (et d’autres) n’ont pas forcément toujours eu la même heure
  • La base est censée référencer tous les changements depuis 1970
  • mais en fusionnant plusieurs zones, le risque est de perdre l’historique pré-1970

Recap Spring.io :

  • Récap Jour 1
  • Récap Jour 2
  • Récap en vidéo par Josh Long
  • State of Spring 2021
    • les chiffres :
      • 61 % des sondés utilisent spring boot
      • 94 % d’entre eux pour faire des micro services
      • 35 % sur des architectures reactive
      • 61 % voudraient passer sur du natif d’ici à 2 ans
    • Nouvelle baseline pour Spring Framework 6.0
      • Java 17 et Jakarta EE 9 dès la 6.0 M1 de Spring Framework qui arrive Q4 2021 (GA en Q4 2022)
    • Spring Native arrive dans Spring Framework
      • Compilation AOT bénéficiera aux déploiements JVM aussi
      • Spring Boot starter pour applications natives
      • Spring Boot proposera des plugins de build et configuration native dès la 3.0
    • Support de RSocket and GraphQL
    • Spring Observability passe dans Spring Framework
      • API unifiée pour les metrics et le tracing, compatible Micrometer, Wavefront, Zipkin, Brave et OpenTelemetry
      • intégration consistante dans tout le portfolio
      • auto configuration dans Spring Boot 3.0
      • Core abstractions dans Spring Framework 6.0
  • Spring Native
  • De Spring framework 5.3 à 6.0

Infrastructure

(suite annonces Spring.io) Tanzu Application Platform :

  • plateforme livrée avec toute la chaine d’outils, mais configurable si les équipes préfèrent utiliser d’autres outils que ceux proposés
  • compatible AKS, EKS, GKS et TKG.
  • application accelerator (inspiré par spring initializer) pour générer les templates des applications qui seront ensuite déployées
  • Spring Cloud Gateway for K8s and API Portal for VMware Tanzu

Tanzu Community Edition :

  • Version OSS de Tanzu

Cloud

Azure installe des agents dans son image linux et ils sont vulnérables aux auto-updates

  • Lié à OMI (open management infrastructure, l’équivalent de Windows Management Infrastructure (WMI) pour les systèmes UNIX qui s’exécute en root avec tous les privilèges
  • Dès qu’on utilise des services comme Azure log, ils l’installent dans les VMs
  • L’article dit que c’est la faute à l’open source et que seulement 20 contributeurs. C’est un peu BS.
  • En fait si c’est installé via un service le service le mettra à jour
  • Mais MS recommande de mettre à jour manuellement aussi

Web

Julia Evans nous explique CORS

  • Julia explique comment se comporte le navigateur qui voit qu’on essaie d’accéder à une URL différente de celle du domaine de la page web chargée et le navigateur se demande s’il a le droit de charger cette page
  • Il va faire une “preflight” request (avec une méthode HTTP OPTIONS) pour savoir s’il a le droit ou non, puis si c’est le cas, pourra accéder à la resource
  • Julia explique la “same-origin policy“ (c-à-d. qu’on ne doit accéder que des resources du domaine qu’on est en train de visiter dans son navigateur)

Data

Kafka 3.0

  • Le support Java 8 et Scala 2.12 est déprécié et sera retiré en version 4
  • Nouvelles améliorations sur KRaft, le mécanisme de consensus qui remplacera à terme ZooKeeper

Outillage

TravisCI fait un petit partage de vos secrets dans toutes les PRs de vos repos par accident

  • le problème a duré 8 jours
  • rotation des secrets recommandée
  • Travis a patché discrètement sans disclosure initialement ce qui a fait un raffut

Architecture

Facebook est tombé pendant environ 6H

  • Facebook prévoit de faire une maintenance sur son backbone (classique)
  • Un ingénieur lance par erreur une commande qui declare l’ensemble du backbone inaccessible
  • Oups, le système d’audit, qui devrait empêcher de lancer une telle commande, est bugué. La commande passe …
  • Toute l’infra de Facebook est désormais déconnectée du net. Les avertissements BGP sont stoppées puisque l’infra FaceBook n’est plus dispo et les DNS déprovisionnent les entrées FaceBook, le monde ne peut plus accéder à FaceBook
  • Les ingé comprennent vite le problème sauf qu’ils ont perdus les accès remotes aux services et la plupart de leurs systèmes internes sont KO à cause du retrait des DNS
  • Ils envoient donc du personnel sur site dans les datacenters pour physiquement remettre en service l’infra, mais l’accès physique aux machines est super protégé
  • Ils finissent par y arriver SAUF que le fait de tout redémarrer pause un vrai challenge du fait de l’affluence du traffic qui reprend. Ils risquent de refaire tomber les datacenters du fait de la surcharge électrique. (sans parler de sproblèmes plus haut niveau comme le rechargement des caches etc)
  • Heureusement ils ont un plan de reprise qu’ils testent régulièrement qui est plutôt prévu dans le cadre d’une tempête qui mettrait HS tout ou partie du réseau. Ce système marche bien et tout rentre dans l’ordre petit à petit, Facebook est sauvé, la planète a reperdu 5 points de QI
  • Julia Evans explore BGP et son fonctionnement dans cet article
  • Vu de dehors avec Cloudflare
  • Impact non seulement du DNS, mais des routes BGP elles même. Ces routes disent qu’une IP (our série d’IP) appartient à une personne donnée.
    • Fondamentalement modèle de confiance.
    • Intéressant de voir comment Facebook DNS down a ajouté beaucoup de traffic aux serveurs de DNS principaux qui ne cachent pas le SERVFAIL

Sécurité

Fuite massive de données chez Twitch

  • Quoi ?
    • l’intégralité du code source
    • Les revenus (sur 3 ans) de plus de 10 000 streamers Twitch ont été publiés sur le net.
    • certains codes d’accès AWS
    • attention, c’est la partie 1, il pourrait y avoir d’autres données prochainement
  • Comment ?
    • Officiellement suite à une erreur dans un changement de config
    • Officieusement, c’est plus probablement un employé ou un ex-employé
  • Pourquoi ?
    • le message sur 4chan dénonce un « un cloaque toxique dégoûtant », ce qui pourrait faire référence aux problèmes de harcèlements et de raids hostiles visant des streameurs et des streameuses en raison de leur origine ethnique, de leur orientation sexuelle ou genre.
    • il est aussi question d’une revendication à une concurrence plus saine dans le secteur du streaming de jeu vidéo

Conférences

DevFest Nantes les 21 et 22 octobre 2021
DevFest Lille le 19 novembre 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/


LCC 264 - En direct de Devoxx France 2021

Posté le 04/10/2021

Pour cette édition 9 3/4, Les Cast Codeurs clôturent cette édition de Devoxx. Un regard sous le capot, une discussion sur les keynotes, une chanson en direct, un homme-grenouille, les tendances, etc.

Enregistré le 1 octobre 2021

Téléchargement de l’épisode LesCastCodeurs-Episode-264.mp3

Clôture de Devoxx France 2021

Le Dessous De(s)voxx

Devoxx France 2022 : avril 20-22 2022, les 10 ans de Devoxx France

Concert en direct

Les keynotes

Mais il est où Vincent ?

Les talks

Les tendances

Le CfP réchauffé

Nos talks préférés

Vos talks préférés

Allez hop ! On se reconfine !

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/


LCC 263 - Le maillot jaune du salon

Posté le 17/09/2021

Deux A et un E discutent des nouvelles de l’été et de la rentrée. #JDK17 #scala #Kotlin #spring6 #dockerdesktop #fitdesk et encore d’autres sujets.

Enregistré le 10 septembre 2022

Téléchargement de l’épisode LesCastCodeurs-Episode-263.mp3

News

Langages

Au revoir AdoptOpenJDK, bonjour Adoptium

  • Eclipse Temurin runtimes pour la partie JDK
  • Grosse test suite
  • License oracle (que AdoptOpenJDK avait perdu)
  • Plus de OpenJ9 ni GraalVM (Oracle recule) mais IBM a Rapatrié OpenJ9 sous le nom IBM Semurin
  • Nouvelles API (backward compatibles ?)
  • Les anciens builds ne seront pas migrés

Une interview des architectes Java

  • Java longevity: stability (not removing things), readability, ecosystem’ well-defined stable interfaces (JVM…)
  • Nouvelles fonctionnalités : qu’est que qui ne peut être fait en dehors de la plateforme
    • Rendre Java plus extensible (Valhalla)
  • Bloque en Java 8
    • Perds argent (meilleure mémoire, performance, temps de démarrage, pauses 2 ms G1 etc
    • Sécurité
  • Loom
    • Réactive programming pour mieux utiliser le,hardware
    • Mais opposé à certains designs de la JVM (error report, debug, flight recorder)
    • Loom résout le même problème, mais en harmonie avec la JVM
    • Api familières
  • Next
    • Valhalla, Panama
    • Tail call recursion
    • Etc

Article en passant sur l’utilisation du foreign API avec libsodium

  • juste une mention

Quoi de neuf dans Scala 3

  • Scala 3.0.1
    • Syntaxe given simplifiée (pas de with)
    • @experimental
  • Scala 3.1
    • Experimental safer exception (checked exceptions, mais sans les ennuis)
    • Warnings de compilation plus configurable
    • Multiversal equality (des classes différentes qui peuvent être égales)

Kotlin a 10 ans

  • annoncé en 2011, 1.0 en 2016, default Android en 2017
  • pas théorique, problèmes pragmatiques
  • multi plateforme encore experimental, on prend notre temps
  • ajoutent features dans le core lib plus lentement que Java
  • prochains 10 ans : multiplateforme, langage reste relevant, reactive programming et immuabilité du front vers le back

Librairies

Spring 6 / SpringBoot 3 annoncé à SpringOne

  • Java 17 et plus
  • Intègre Spring Native
  • Tomcat 10 min
  • Jakarta 9 avec cassage de packages
  • Q4 2022
  • Spring 5.3 et SpringBoot 2.7 seront en maintenance open source entendue
  • Autre lien

Quarkus 2.2 et 2.1

Micronaut 3 est sorti

  • RxJava n’est plus une dépendance transitive (choix du moteur reactive streams)
    • Utilisent Reactor en dessous
  • Les annotations ne sont plus héritées par défaut
  • Support Jakarta lifecycle annotations, Jakarta inject
  • Injection qualifiée par le generic des arguments
  • Filtres servers plus consistant (appelés une seule fois)
  • @Introspected ne rajoute plus les métadonnées pour GraalVM, utiliser @ReflectiveAccess
  • Ajout des resources passe du compile time au build time donc utilisez les plugins maven de Micronaut ou faite le vous-même
  • Quelques autres breaking changes
  • OpenRewrite règles changent le code pour migrer pour vous

Infrastructure

Comment debugger son script Ansible

  • --step
  • In-line logging
  • Ansible-lint
  • Ansible-console
  • Ansible debugger

Cloud

Apple nous protégeras des photos pedophiles mais en ouvrant une brèche sur la sécurité de ses téléphones

  • Une analyse techniques
  • Il y a deux choses distinctes
  • Détecter les images d’une base de donnée pédophile avec du hash sur le téléphone et en alertant quand trop sont flagguées positive (avec check humain)
    • Ça s’appuie sur iCloud photo, car sur leur cloud, mais pas un filtre serveur
    • Base de donnée Baked dans chaque iOS
    • NeuralHash
      • Hash résiste au recadrage et autres ajustements de photos
    • Threshold secret sharing
      • Au bout de n rapports remontés, on a capacité à reconstituer la clef de chiffrement
    • Et un troisième mécanisme pour éviter de montrer quelles photos intéressent Apple
    • Quid d’une puissance étrangère qui veut rajouter des photos de dissidents ?
      • Apple dit on n’acceptera pas
    • Où attaque sur le neural hash
  • Détection de nudité et demande si l’enfant veut voir avec alerte aux parents
  • Ils se donnent quelques mois de retravaille au final

AWS a 15 ans

  • démarre avec une region, un seul type d’instance et tout éphémère (pas de block storage)
  • peu de feature et peu de details initialement
  • prix a l’heure initialement qui était innovant

Data

La guerre de la recherche - Les clients Elastic Search ne seront pas compatible avec OpenSearch

  • Elastic vs AWS - Clash numéro ? Dans ce dernier épisode, Elastic rajoute des contrôles dans ses APIs clientes pour ne se connecter qu’a ses propres clusters et empêcher de les utiliser avec OpenSearch.
    • Risques d’incompatibilité
  • Manque de chance ce changement bloque aussi l’utilisation de la version OSS d’Elasticsearch.
  • De son côté AWS promet de faire son possible pour fournir des drivers qui resteront compatibles Elasticsearch 7.10.2 (la version à partir de laquelle ils ont forké) et OpenSearch
  • Bref la guerre continue …

Outillage

AtomicJar release TestContainers 1.16

  • https://www.atomicjar.com/2021/07/testcontainers-1-16-0-release/ Testcontainers 1.16.0 est la première release faite par AtomicJar, la société créée par les fondateurs du projet.
  • Meilleure compatibilité Apple M1
  • Couche de transport utilise Apache HTTP Client 5 au lieu de OKHTTP pour éviter la malediction Kotlin
  • Meilleure stabilité et compatibilité sur Windows pour process natifs Windows et WSL 2
  • docker.host peut être configuré dans $HOME/.testcontainers.properties
  • Aussi Support Podman amélioré récemment

Docker introduit un nouveau système d’abonnement avec Docker Business et différents niveaux: perso, pro, entreprise etc

Les différentes manières de déclarer les dépendances dans son projet Gradle

  • En particulier, les différences entre API, implementation, runtimeOnly, compileOnly, compileOnlyApi Avec des exemples concrets pour bien illustre ces différents scopes.
  • Gradle regroupe les dépendances dans des ensembles appelés des “configurations”. Ces configurations définissent le classpath lors de la compilation ou le classpath pour le runtime lorsque votre code s’exécute.
  • Gradle définit 3 types de configuration : api, implementation et runtimeOnly
  • La configuration “api” est utilisée pour le classpath compilation et runtime et est exposée aux consommateurs de l’API aussi pour le classpath de compilation et runtime
  • La configuration “implementation” est utilisée pour le classpath de compilation et runtime, mais est exposée pour le consommateur de l’API que pour le classpath au runtime
  • La configuration “runtimeOnly” n’est utilisée que pour le classpath au runtime
  • La configuration “compileOnly” est utilisée pour le classpath de compilation, mais n’est pas exposée pour les consommateurs
  • Enfin la configuration “compileOnlyApi” est utilisée pour le classpath de compilation et est exposée aux consommateurs à la compilation de leur code quand les metadata Gradle sont utilisées

Méthodologies

Opinion sur Googlespeak et les pratiques anti concurrentielles

  • Certains dont l’auteur voient Google utiliser Google Search pour placer hautement leurs propres services alternatifs. Google Flight etc
  • Et les Googlers avec qui il interagissait trouvait ça « absurde » de penser ça.
  • Chercher un hôtel
  • Étude montre que Google offre 41% de sa première page à ses propres propriétés (inclus direct answers)
  • Direct answer est mis rapide pour l’utilisateur, mais prend le contenu 3rd party (Wikipédia, IMDb etc) et nous fait rester sur une page Google.
  • Googlespeak d’après Orwell. Si le langage ne permet pas d’exprimer, on ne pense pas aux choses.
  • Pas dominant, mais succès. Pas barrière à l’entrée, marché, effet réseau qui sont taboo dans un contexte de tension antitrust
  • Encourage à réfréner sa communication écrite.
  • Comme beaucoup de sociétés américaines à cause du processus de discovery
  • Market share -> user preference
  • Apple et epic ont levés des docs similaires, mais Apple n’était pas gardé dans sa comm interne. Autour de l’app store.
  • Google dans ses formations mention non monopoly car beaucoup de compétiteurs. Et se défini en termes très larges et donc avec de la compétition (dans la pub et dans la recuperation d’information).
  • Quand le congrès leur demande, ils ne font pas d’analyse de marchés (sur les marchés dominants).
  • 65 % des recherches n’entraînent pas un clic sur un site externe - valeur réfutée par Google
  • C’est une réaction à la judiciarisation de la vie des entreprises.

Loi, société et organisation

Matt Asay quitte AWS et réflecte sur l’open source chez AWS

  • pleins de petites équipes et pas de décisions top down
  • en tout cas pas pour open source
  • Un langage spécifique a Amazon pour convaincre
  • Les Leadership Principles tendent à ne pas investir dans les elements side de type open source
  • et quand on a Two-Pizza Teams, peut-on contribuer sans se sentir trop contraint en temps
  • si c’est une équipe de 12 sur 200 équipes ça ne m’étonne pas trop 🙂

L’Open Source au secours du développeur (et de l’architecte) ?, un retour d’expérience très personnel, mais instructif pour ceux qui souhaiteraient se lancer …

  • Pourquoi l’Open Source ?
  • Par où commencer ?
  • Le choix du premier projet pour sa première contribution ? (Le syndrome de l’imposteur)
  • La première contribution
  • Rythme de travail

Outils de l’épisode

Fit Desk

  • Antonio passe au Fit Desk pour travailler en pédalant
  • Promis, il écrira un blog dans 4/6 mois avec du feedback

Rubrique débutant

RISC vs CISC

  • CISC roi quand la mémoire est chère, on crée des instructions haut niveau plus complexes
  • RISC paye en mémoire, mais simplifie la chaîne de travail (instructions de taille fixe)
  • RISC plus d’opérations et donc de CPU clock mais pipelining possible
  • RISC compensé par plus de registers et par la compression d’instructions set
  • register mémoire interne CPU de taille fixe
  • CISC fait du hardware hyper threading
  • RISC philosophiquement fait travailler les compilateurs beaucoup plus, mais on ne code plus en assembleur

Conférences

Crowdcast sur devfest Lille et CloudNord par Emmanuel Demey

Pas de Devoxx Belgique en 2021

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/


LCC 262 - Interview Cloud de Confiance avec Quentin Adam

Posté le 02/09/2021

Quentin Adam de Clever Cloud et Emmanuel discutent du Cloud de Confiance et de ses impacts économiques et politiques.

Enregistré le 1 juillet 2021

Téléchargement de l’épisode LesCastCodeurs-Episode-262.mp3

Interview

Ta vie, ton œuvre

Twitter de Quentin

Clever cloud pour le contexte

Automatisation de l’infrastructure

Cloud souverain

“modèle de déploiement dans lequel l’hébergement et l’ensemble des traitements effectués sur des données par un service de cloud sont physiquement réalisés dans les limites du territoire national, par une entité de droit français et en application des lois et normes françaises”

Cloud de l’état : les technologies retenues à la fois en matière de cloud privé et public devront garantir la réversibilité, l’interopérabilité et la portabilité des applications.

https://www.sciencespo.fr/public/chaire-numerique/2020/07/20/cloud-souverain-genealogie-ambition-emblematique-souverainete-numerique/

Pourquoi

  • Patriot act 2001
  • Edward Snowden 2013
  • Se protéger du cloud act 2018 :
    • L’État américain a accès aux données hébergées par les clouds providers américains même hors du sol américain

Pour l’État, les collectivités et les sociétés françaises (espionnage) L’armée à probablement déjà ses trucs

Plan calcul Loi informatique et liberté 90s perte fondeurs et constructeurs

Un peu d’historique

Projet Andromède : Thales, dassault, Orange, Bull: 135 M€

Mais sort

  • Numergy : dassault bull et Sfr
  • Cloudwatt : Orange Thales

75 M€ chaque premier shot

GAIA-X : échelle européenne standards de sécurité, d’interopérabilité et de portabilité des données

Pendant ce temps-là

  • OVH
  • Clever Cloud
  • Etc

Approche économique

Cloud de confiance

Protection contre réglementations extra communautaire

Le hard français, le soft américain

Ils ont le soft que l’on veut et que les gens utilisent vs Cloudwatt et Numergy

La certification et les petits éditeurs

Un cloud service est un cloud service est un cloud service

Quels sont les logiciels à enjeux :

  • Mail, éditeur de Documents, tableur
  • Progiciels
  • Plateforme de développement de code spécifique

Bleu (licence Azure Orange + …)

Le point de vue de Quentin

C’est bien ou c’est pas bien cette stratégie ? Ça paraît pragmatique

Don’t kill French Tech

Approche économique

https://cryptpad.fr/

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/


LCC 261 - Interview Doctolib avec David Gageot

Posté le 29/07/2021

Guillaume et Antonio interviewent David Gageot à propos de Doctolib, l’entreprise, mais surtout ses différents produits, l’architecture et comment elle a géré la prise des rendez-vous pour les vaccins anti-covid.

Enregistré le 30 juin 2021

Téléchargement de l’épisode LesCastCodeurs-Episode-261.mp3

Interview

Ta vie, ton œuvre

Docker, Google, son arrivée chez Doctolib en octobre 2020.

Doctolib, l’entreprise

Les produits, les équipes, la distribution de l’entreprise, son organisation, le modèle business (licence vendue aux professionnels de la santé).

La sécurisation des données

End-to-End encryption pour les documents entre patients et médecins : ça veut dire que Doctolib techniquement ne peut pas lire les documents hébergés sur ses serveurs ? Mais comment ça marche, qui génère les clés de chiffrement, et où sont-elles stockées ?

Pourquoi AWS vs un OVH ou autre acteur français ? Ou un Google…

La stack technique

Le machine learning. Pourquoi ? Comment ?

Ruby on Rails, React, Postgres, S3…

Le sizing de l’infrastructure, 800 pods K8s qui font tourner le front Rails au-dessus d’une grosse base PostgreSQL

La méthode agile et l’organisation des développements pour cibler 3 déploiements par jour en moyenne.

CI sur 700 nœuds sur K8s avec de nombreux tests end-to-end. Feature-Flags sur les fonctionnalités.

La vaccination

Seulement 2 % de prises de rendez-vous pour les vaccins mais un public super exigeant.

Comment améliorer l’UX pour ce use-case spécifique ?

Quels ont été les défis de montée en charge pour les inscriptions ? Des flux anticipés, attendus, inattendus ?

L’impact de vite ma dose et tout l’écosystème qui s’est mis en place

Quelle est la relation avec vite ma dose ? Humaine, systèmes, etc. Impact des médias ? Impact de CovidTracker ?

Comment gérer la cohérence des données, la gestion des caches… ?

L’implantation de Doctolib

Quels secteurs (médecins généraux, kiné, hôpitaux) utilisent le plus Doctolib ?

Doctolib et l’administration française, la presse…

Comment s’est passé la relation avec l’administration ?

Comment gérer la tension sur des sujets importants comme la vie privée, la sécurité, la souveraineté…

Les questions des auditeurs

Que se passerait-il en cas de rachat ? Que deviendraient les données ?

Doctolib, la concurrence et le futur

En France, leader sur la prise de rendez-vous, mais en compétition sur de très nombreux autres produits (gestion de la patientèle…).

Tout reste à faire à l’étranger.

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/


LCC 260 - L'épisode généré par intelligence artificielle

Posté le 27/07/2021

Antonio, Guillaume et Emmanuel discutent de pleins de choses dont des analyses de l’écosystème de la JVM, de la generation de code via intelligence Artificielle avec CoPilot, mais pas que.

Enregistré le 16 juillet 2021

Téléchargement de l’épisode LesCastCodeurs-Episode-260.mp3

News

Langages

Les prédictions d’Adam Bien pour la seconde moitié de 2021

  • Kube a gagné la guerre. Les cloud providers fournissent des solutions dérivées plus simplifiées. La compatibilité kubernetes devient moins cruciale
  • FaaS est utilisé pour son usage listener et point d’intégration et plus en général purpose tool
  • Prix du cloud et repatriation. Bouger une app existante dans le cloud n’amène pas d’avantage. Le monolith devient une best practice
  • Coût du cloud pousse a merger des microservices dans un cadre de cloud cost driven development
  • Cloud deviennent intéressant pour les services uniques (text to speech, image recognition, etc). En parallèle la sécurité des cloud providers est reconnu. Donc boring load on prem, projects innovants dans le cloud.
  • Serverless va être le trend de 2021 (fonction mais aussi db, workflow, event streams etc) idée est scale down to zero
  • La montée des frameworks next gen Micronaut et Quarkus est indisputable. Build time deployment.
  • La popularité de quarkus a explosé, difficile de trouver un développeur Java qui n’a pas expérimenté. Le cocktail GraalVM, API familières Jakarta EE et MicroProfile, sa do so mémoire et temps de démarrage lui donne un avantage. Mais la compétition ne dort pas (Helidon et micronaut)
  • Moins de langages alternatifs parce que l’innovation dans Java a accéléré
  • Lombok moins populaire parce que Java Records.
  • Kafka sera plus un data store immuable et source de vérité qu’un remplacement pour JMS
  • Kafka et réactive en combo va rendre la programmation réactive populaire
  • Le projet Loom éliminera la programmation reactive pour les resources non-reactives
  • ARM sur le serveur
  • GraalVM pour remplacer OpenJDK car rapide et multi langage. Et competitor a GraalVM qui arrive
  • Visual studio code et ses features pour Java pas forcément connu et donc va croître encore.
  • Payara cloud serverless server ou l’app server est un opérateur Kube et on déploie un thin jar.

GraalVM offre des plugins Gradle et Maven pour la compilation native

  • Tester les libraires en natif avec les tests JUnit 5 qui tournent en natif
  • Après tourne les tests en JVM, ils sont loggués et ajoutés en réflexion et compilation native.
  • Et un binaire de test est créé
  • plugin Gradle
  • License Oracle Universal Permissive

Le rapport sur l’écosystème JVM par Snyk

  • Sondage effectué durant six semaines (entre février et mars 2021) au prêt de 2000 développeurs et comparé à GitHub et Google Trends
  • Mon (Emmanuel) intuition c’est qu’il y un biais dans les gens mesurés
  • 44 % des Dev Java utilisent AdoptOpenJDK en prod. Oracle OpenJDK 28 et Oracle JDK 23 %
  • 60 % utilisent Java 11 en prod, et 12 % la dernière. Mais encore 60 % de 8 en prod
  • Java 91 %, kotlin 18 %, Groovy 13 % et Scala 10
  • IntelliJ IDEA 70 %, Eclipse 25 %, et VSCode 23 %. 50 % sont bi-IDE
  • Maven 76 %, Gradle 38 %, Ant 12 % yah
  • Spring Boot 58 %, Spring MVC 29 %, Jakarta EE 13 % et Quarkus 11 %

JDK 17 en ramp down phase 2

Schedule :

  • 2021/07/15 Rampdown Phase Two
  • 2021/08/05 Initial Release Candidate
  • 2021/08/19 Final Release Candidate
  • 2021/09/14 General Availability

Features integrated in JDK 17:

Librairies

Spring Native 0.10.0

  • Utilise Native testing de GraalVM
  • Passe au plugin Gradle de l’équipe GraalVM
  • Ahead of time proxies pour les classes

Quarkus 2.0 est sorti

  • Guide de migration mais les applis devraient essentiellement fonctionner (extensions ont plus de taf)
  • JDK 11+ GraalVM 21.1
  • Vert.x 4
  • Microprofile 4
  • Continuous testing : les tests impactes tournent automatiquement en Dev mode. Les tests qui cassent sur un changement sont visibles tout de suite et en continu. Comme infinitest mais sans plugin IDE.
  • Quarkus a une CLI pour simplifier l’interaction vs les plugins Maven ou Gradle. Notamment création de projets.
  • JDK 11+ GraalVM 21.1
  • Vert.x 4
  • Microprofile 4
  • GraphQL client (smallrye), CDI decorators supportés, transaction pour MongoDB avec Panache,
  • Support kotlin grandement amélioré : resteasy reactive, rest client, reactive messaging extensions supportent tous les coroutines
  • Support d’Amazon services system manager

Crafting rolling releases for a Quarkus CLI application

  • Y’a encore du chemin pour faire simplement des CLI avec graalVM en comparaison de go
  • JReleaser outils permettant de livrer automatiquement des projets Java vers différentes plateformes (Homebrew, Snapcraft, Scoop)
  • Inspiré de GoReleaser et jbang
  • Le blog package l’outil kcctl créé par Gunnar avec JReleaser
  • Pas mal de conf (Windows vs Linux/MacOS) mais à la fin il y arrive

Infrastructure

Amazon sort son OpenSearch 1.0 et OpenSearch Dashboard, leur fork d’Elastic Search et Kibana

  • 1.0 sortie de OpenSearch (GitHub)
  • Suppression du code propriétaire
  • Upgrading: mise a jour d’ElasticSearch et Kibana vers OpenSearch et OpenSearch Dashboard aussi simple qu’une mise a jour de version
  • Compatibility : travaux de reflexion autour de la compatibilité avec les outils existants
  • Testing: infrastructure de test moderne et flexible
  • Supporte les architectures Linux ARM64
  • Minimal artifacts for embedding of OpenSearch and OpenSearch Dashboards into existing products and services,
  • Data stream support for OpenSearch Dashboards,
  • Span attribute visibility and filtering in the Trace Analytics plugin,
  • Scheduling and tenant support in the Reporting plugin.
  • Aussi mentionne la roadmap

Kubernetes 1.22 enlève le support des vieilles versions de ressource

  • Faites le ménage en continu pas des grosses migrations tous les 3 ans
  • Release prévue en aout
  • Ils vont supprimer des API qui étaient en beta

Cloud

Un tweet lance un faux service AWS InfiniDash qui a été repris par des devs et des boîtes

  • La théorie est que la plupart des devs n’entendront parler de technologie que via les tweets et les articles.
  • Aussi le métier de DevRel c’est de surfer la vague du social media. Les DevRels AWS ont continué la farce (je crois)
  • Werner Vogels, oui pour sûr.
  • gros effet boule de neige

Outillage

GitHub copilot

  • IntelliSense boosté par les projets visible et hostés dans GitHub et autre données publiques
  • via l’intelligence artificielle, essaie de comprendre l’intention via le contexte
    • uniquement le fichier édité en contexte pour l’instant
  • VSCode extension donc tourne partout où les plugins VSCode tournent
  • 0,1 % de copie exacte
  • le code nous appartient en tant qu’utilisateur
  • le code contexte est transmis a GitHub qui l’utilise pour ses télémétries et améliorer les modèles ML
  • pas toujours du code de qualité
  • des secrets valides sont générés (du corpus original e.g. SendGrid)
  • propose du code GPL (derivation?)
  • attaque de sécurité vont venir :)

Audacity 3 spyware ou pas après le rachat

  • la communauté “niveau 2” s’est emballée, a créé une dizaine de forks.
  • C’était déjà annoncé et discuté avec la communauté Audacity.
  • OS, pays, CPU, erreurs, rapports de crash
  • Protection légale « law enforcement ». Les 13 ans, juste pour éviter des restrictions légales US
  • 3.0.2 n’a pas le code des collections de données
  • Avec feedback initial passe de Google Analytics à un hébergement propre.
  • Quand compile le project c’est off par défaut (donc seuls les binaires distribués l’ont par défaut) donc pas dans les distros linux

Sécurité

LinkedIn la brèche qui donne des infos de 92% de ses utilisateurs y compris les salaires inférés

  • API LinkedIn abusée.
  • Email, noms, telephone et adresse physique de 700M d’utilisateurs
  • Presque intéressé de fouiller pour voir mon salaire théorique :)
  • Dispo sur le dark web

Loi, société et organisation

Lettre à ceux qui veulent faire tourner la France sur l’ordinateur de quelqu’un d’autre par Tariq Krim

  • Télécharger l’ebook au format PDF. Très documenté et référencé
  • Coulisses et manoeuvres pour installer les GAFAM au coeur de l’État
  • 17 mai 2021, Bercy présente la nouvelle stratégie Cloud du Gouvernement
  • GAM (Google Amazon Microsoft)
  • À part OVH Cloud, aucun des acteurs français n’a été mentionné par les Ministres
  • Les lois américaines dites FISA et Cloud Act permettent d’obliger les grandes sociétés US à fournir à la justice américaine les données situées sur leurs serveurs européens
  • Si l’on met de côté les questions de souveraineté, les services de sociétés comme Amazon, Microsoft et Google sont très ergonomiques
  • Les Américains offrent des services clé en main, les services “made in France” demandent de combiner plusieurs produits issus de sociétés différentes
  • Apple, Google, Facebook, Amazon ont embauché des dizaines de milliers d’ingénieurs, dont de très talentueux Français
  • Les clouds GAM pourraient décrocher le label SecNum Cloud (le plus haut niveau de sécurisation de l’État)
  • Après avoir délocalisé notre industrie (le fameux “Fabless” de Serge Tchuruk ancien patron d’Alcatel), l’État et les grandes entreprises ont délocalisé leur informatique vers les grandes SSII qui se sont mises à produire des projets à la chaîne

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/