
Les Cast Codeurs Podcast
340 episodes — Page 2 of 7
LCC 290 - Mettre tes lunettes dans ta base de données
Guillaume et Arnaud discutent de tech en cette nouvelle année 2023. GraalVM dans OpenJDK, Rust, Webassembly, containers. postgres, ChatGPT, le rôle de l'architecte et la ribambelle de rétrospective 2022. Enregistré le 13 janvier 2023 Téléchargement de l'épisode LesCastCodeurs-Episode–290.mp3 News Langages OpenJDK propose projet Galahad : pour fusionner dans OpenJDK certaines parties de GraalVM community edition https://www.infoq.com/news/2022/12/openjdk-galahad-Dec22/ https://www.infoq.com/articles/graalvm-java-compilers-openjdk/ Alex Snaps partage un article sur Rust pour le développeur Java https://wcgw.dev/posts/2023/rusty-java-intro/ Google a sorti sa formation interne sur Rust en libre accès https://google.github.io/comprehensive-rcust/ Paul King du projet Apache Groovy partage sa rétrospective de l'année 2022 https://blogs.apache.org/groovy/entry/apache-groovy–2022-year-in Webassembly pour le developpeur Java https://www.javaadvent.com/2022/12/webassembly-for-the-java-geek.html Un article assez critique sur TypeScript https://dev.to/wiseai/17-compelling-reasons-to-start-ditching-typescript-now–249b On voit souvent des articles plutôt positif sur TypeScript, mais est-ce que tout est tout rose tout le temps, pas forcément ! L'article cite 17 problèmes avec TypeScript, dont la courbe d'apprentissage, la baisse de productivité, la verbosité des types, le manque de flexibilité, le fait que ce n'est pas vraiment un sur-ensemble de JavaScript, la lenteur du temps de compilation… basé sur son talk sur le même thème qu'il a déjà présenté à Devoxx Maroc et Belgique Alex a également écrit une deuxième partie faisant suite à son article, dans lequel il parle un peu plus d'ownership, de borrowing, du trait Drop, etc. (càd sur la gestion mémoire) https://wcgw.dev/posts/2023/rusty-java–2/ Librairies Sortie du Micronaut 3.8 https://micronaut.io/2022/12/27/micronaut-framework–3–8–0-released/ support de GraalVM 22.3.0 possibilité d'annoter les records avec @RequestBean (pour binder les paramètres de requête et autre, aux paramètres de la méthode du controleur) amélioration du CorsFilter pour éviter certaines attaques également des améliorations sur le support de CRaC (Coordinated Restore at Checkpoint) et plein d'autres upgrades de versions, nouveaux plugins, et améliorations mineures Swing n'est pas mort ! Un nouveau DSL Java open source pour Swing dénommé Sierra, pour faciliter la création d'interfaces graphiques Swing https://github.com/HTTP-RPC/Sierra Infrastructure Comprendre root dans et en dehors des containers https://www.redhat.com/en/blog/understanding-root-inside-and-outside-container un article pas recent mais utile c'est quoi un container rootless on peut etre root et lancer le moteur de container on peut etre root dans le container lui meme quand on run en root le moteur, l'utilisateur exterieur et interieur sont mappés (meme # d'UID) ; par contre en non root, le UID de l'utilisateur du container est mappé sur un nouvel UID c'est top car les utilisateurs dedans et dehors ne sont pas mappés donc moins de risque en cas de sortie de bac a sable (sandbox escape) c'est le cas pour podman mais pour docker il y a un ajout: docker a un démon (root ou pas) et une CLI qui appelle ce demon (root ou pas), ce qui importe c'est le demon pour les risques de sécu l'idéal c'est de tourner non root le moteur et dans le container (meme si encore beaucoup d'images s'attendent a être root les folles) Cloud Kubernetes 1.26 avec notamment une de corrélation de l'hébergement de la Registry par Google https://www.infoq.com/news/2022/12/kubernetes–1–26/?utm_campaign=infoq_content&utm_source=twitter&utm_medium=feed&utm_term=Devops Web Evan You, le créateur de Vue.js revient sur l'année 2022 https://blog.vuejs.org/posts/2022-year-in-review.html C'est la grande migration de Vue 2 vers Vue 3 Migration de l'API Composition de Vue 3 vers l'API Options de Vue 2 (mais supporté encore en 3) La documentation de Vue propose Vue 3 par défaut depuis février Pendant la phase de transition, gros focus sur l'outillage et l'expérience développeur L'écosystème a bien adopté Vue 3 et continue de le faire au fur et à mesure Pour 2023, espère faire plus de releases mineures régulières, et travail sur le "vapor mode" qui propose une stratégie de compilation plus rapide Data Un article de Stephan Schmidt qui suggère d'utiliser PostgreSQL… pour tout ! https://www.amazingcto.com/postgres-for-everything/ pour du caching à la place de REDIS comme une queue de messages pour stocker des documents JSON au lieu de MongoDB pour faire des requêtes géo-spatiales pour le full-text search à la place d'ElasticSearch pour générer du JSON directement en base comme stockage / adaptateur pour GraphQL ou pour Timescale (base de données time-series) Outillage ChatGPT en action sur le design d'un nouveau langage de programmation https://judehunter.dev/blog/chatgpt-helped-me-design-a-brand-new-programming-language ChatGPT, on lui attribue plus de magie qu'il n'en a https://a
LCC 289 - La revanche des dinosaures
Guillaume et Emmanuel discutent les nouvelles de novembre décembre: spring boot 3, AWS SnapStart, GitHub Copilot en procès… Et aussi des articles de fond: performance, SRE et l'auto résilience, comment utiliser Git, le Devops pour les décideurs, l'age et la tech et d'autres sujets encore. Résumé Enregistré le 9 décembre 2022 Téléchargement de l'épisode LesCastCodeurs-Episode–289.mp3 News Langages Comment choisir ses collections ? Entre les différentes listes, maps, queues, etc. https://www.baeldung.com/java-choose-list-set-queue-map un bon rappel des fonctionalités des différentes collections (discuter le diagramme de choix) et un bon rappel des ordres de grandeur d'insertion, de lecture etc Attention o(n) ne veut pas dire plus lent que o(1), ca veut dire que ca scale linéraiement Tester avec le volume attendu de données Un bon viel Object[] et le traverser à chqaue fois peut etre bien plus efficace (moins gourmand en structure memoire, moins de jump memoire, etc) Librairies Spring Boot 3 est sorti https://spring.io/blog/2022/11/24/spring-boot–3–0-goes-ga Java 17 de base Support de GraalVM Native Image (au lieu de l'ancienne expérimentation de Spring Native) Amélioration de la traçabilité avec Micrometer et Micrometer Tracing JakartaEE 9 minimum et support de JakartaEE 10 Quarkus est 600 fois plus lent qu'un compétiteur, ou pas https://t.co/1c2sFSY9sE discute le lien entre les résultats et l'environnement Une erreur de code initiale Puis une erreur de limite de système ou deux Pour arriver au résultat Bon retour sur l'approche méthodologique Spring vault 3 https://spring.io/blog/2022/11/28/spring-vault–3–0-goes-ga Java 17 Plus de clients supportés comme le client jtm réactif du jdk Support du versionage des mots de passe pour les vaults clé valeur Cloud Mais pourquoi Twitter tourne t'il toujours malgré toutes les personnes renvoyées ? https://matthewtejo.substack.com/p/why-twitter-didnt-go-down-from-a Grâce au long travail de SRE, de mise en place d'auto-réparation, de cache, de monitoring, de sur-provisioning. Donc beaucoup d'automatisation pour faire en sorte que le tout fonctionne "presque" tout seul sans trop d'intervention humaine. C'est un article écrit par un des SRE qui travaillait en particulier sur le cache de Twitter. GitHub passe à un versioning par date de son API REST https://github.blog/2022–11–28-to-infinity-and-beyond-enabling-the-future-of-githubs-rest-api-with-api-versioning/ au lieu de continuer avec une v4, v5, etc, utilisation de date comme 2022–12–25 chacune de ses versions seraient supportées a minima 2 ans on peut spécifier la version avec un header HTTP spécial pas de changement pour l'API GraphQL par contre Stripes va encore plus loin en se rappelant la version utilisée au premier appel et le fixe par defaut Les appels sans version explicite utilisent celle là, et on peut la faire evoluer Amazon SnapStart pour lambda https://aws.amazon.com/blogs/aws/new-accelerate-your-lambda-functions-with-lambda-snapstart/ démarrer plus rapidement les lambda A une phase Init exécutée pour préparer la lambda snapshot Firecracker VM pas juste CRaC Remplace les seed et le réseau et le disque réduit les temps de démarrage Testé avec Quarkus https://quarkus.io/blog/quarkus-support-for-aws-lambda-snapstart/ Testé avec Micronaut https://twitter.com/sdelamo/status/1597535515758452736?s=46&t=iQ7IEvuv4e4eD1oM-Hi1IA Et avec Spring Boot Outillage Petit tip Git de Minko Gechev (monsieur Angular) https://twitter.com/mgechev/status/1594758205237706752 On peut faire un git clone [repo] —depth 1 pour dire qu'on ne veut que la dernière révision, et non pas tout l'historique du repo C'est pratique en particulier en CI pour gagner du temps lorsqu'on a un gros repo avec beaucoup de révisions Si vous luttez toujours avec git ce guide très détaillé peut vous aider. https://github.com/k88hudson/git-flight-rules Il s'agit d'un énorme "comment faire?" qui est même traduit en plusieurs langues dont le français: https://github.com/k88hudson/git-flight-rules/blob/master/README_fr.md Faire tourner ses Github Actions en local avec le projet open source Act https://github.com/nektos/act Pratique de vérifier en local le fonctionnement de son pipeline avant de le pousser sur Github en prod Utilise Docker sous le capot pour faire tourner chaque étape peut marcher sur podman mais pas garanti pour l'instant Comment transformer n'importe quel site web ou webapp en application autonome https://glaforge.appspot.com/article/turning-a-website-into-a-desktop-application utilisation d'une fonctionnalité de Chrome : création de raccourci avec ouverture dans une fenêtre "sans chrome" fonctionne sur tous les OS utilise le favicon comme icône pour l'application le site web se retrouve dans votre barre des tâches comme une application normale, et on peut faire un ALT/CMD-Tab pour aller vers son application, etc. Architecture Six patterns pour les architectures event driven https://medium.com/wix-engineering/6-event-driven-architecture-patterns
LCC 288 - L'épisode marathon mastodonien
Dans ce long épisode, retrouvez Emmanuel, Guillaume, Antonio et Arnaud qui reviennent sur les dernières sorties de GraalVM, GoLang, JBanking, Spring, Spring Modulith, Quarkus, Apache Maven. Vous retrouverez aussi de nombreux sujets infrastructure, cloud, méthodologie le tout accompagné d’un pachyderme très à la mode en ce moment: Mastodon. Enregistré le 18 novembre 2022 Téléchargement de l'épisode LesCastCodeurs-Episode–288.mp3 News Langages Alina Yurenko annonce la sortie de GraalVM 22.3 https://medium.com/graalvm/graalvm–22–3-is-here-jdk–19-builds-jlink-support-new-monitoring-features-and-more-f6e2b2eeff95 l'article mentionne l'annonce faite à JavaOne qu'Oracle contribue GraalVM CE à la communauté Open JDK https://www.graalvm.org/2022/openjdk-announcement/ support du JDK 19 possibilité de télécharger facilement (dans un script) la distribution avec un one-line (bash/curl) possibilité de compiler jWebserver en un exécutable natif diverses améliorations sur le monitoring et l'expérience développeur de native image (JFR, jvmstat, head dump…) nouvelles versions des reachability metadata nouvelle API native image et diverses autres updates sur le support de Python, de Ruby, des contributions de la communauté Go fête ses 13 ans https://go.dev/blog/13years avec la grosse release de 1.18, avec le support des workspaces, du fuzzing, mais surtout des generics aussi une commande govuln qui fait analyse statique - intéressant la notion d'outil dans le langage les build go sont vérouillés vu qu'ils reconstruisent tout et qu'ils dépendent d'un sha1 pour les dependences git et beaucoup plus de choses ici https://go.dev/blog/supply-chain workspace qui permet de travailler sur plusieurs modules en parallèle sans avoir a changer tous les go.mod à la main Librairies Sortie de JBanking 4 par Marc Wrobel https://www.marcwrobel.fr/sortie-de-jbanking–4–0–0 Une librairie utilitaire pour assister dans le développement d'applications bancaires Support des codes ISO des pays, des monnaies, des codes BIC, des IBAN, et aussi du calendrier des jours fériés des banques internationales Spring Modulith, un projet expérimental d'Oliver Drotbohm, qui permet de s'assurer de la structure et architecture de ses projets Spring, par exemple pour vérifier les dépendances propres entre modules, pour bien structurer ses applications Spring Boot https://spring.io/blog/2022/10/21/introducing-spring-modulith Une version alpha de Quarkus 3 arrive ! https://quarkus.io/blog/road-to-quarkus–3/ Plein d'upgrades : Hibernate ORM 6, Jakarta EE 10, Eclipse MicroProfile 6, HTTP/3, io_uring, Virtual Threads de Loom et Structured Concurrency, java.util.concurrent.Flow pour s'affranchir de Reactive Streams Version cible Java 11, mais recommendation d'utiliser Java 17 les versions 3 seront en parallèle des versions 2 le temps que l’écosystème passe à la 3, notamment les dependences jakartaee peut essayer facilement depuis la CLI quarkus create app --stream=3.0 quelques casse de compatibilités attendues mais minimisées, spécialement dans le core garde java 11 car demande de la communauté Spring 6.0 est sorti https://spring.io/blog/2022/11/16/spring-framework–6–0-goes-ga Java 17+ de base Jakarta EE 9+ Hibernate 6+ foundations pour Ahead of Time transformations pour GraalVM Exploration des threads virtuels https://spring.io/blog/2022/10/11/embracing-virtual-threads tester sur les threads servlets et autre SpringBoot arrive plus tard Détail des changements https://github.com/spring-projects/spring-framework/wiki/What%27s-New-in-Spring-Framework–6.x/ Infrastructure Stop using CPU limits on Kubernetes https://home.robusta.dev/blog/stop-using-cpu-limits L'auteur fait une comparaison amusante avec le besoin de boire de l'eau ! Il vaut mieux définir des requêtes (des besoins en eau / CPU), plutôt que des limites (pas le droit de boire plus / d'utiliser plus de CPU) c'est plus nuancé que ca, parce que aux cas limites des choses peuvent mal se passer cas 1: on atteind 100% d'usage. Le process avait définit un request mais en fait a besoin de plus en pratique, et là paf il se met à mal fonctionner, donc dès que votre systeme stresse, vous avez des erreurs en cascade cas 2: un ou plusieurs noeuds sont recyclés, ce qui veut dire que vous avez beaucoup de redémarrages de pods et du coup ca met la pression sur le CPU, tester ces cas là, certaines applis qui démarrent trop lentement ont tendance à tomber en cascade Comment faire des attaques d'injection sur les intelligences artificielles qui recoivent du contenu utilisateur https://hackaday.com/2022/09/16/whats-old-is-new-again-gpt–3-prompt-injection-attack-affects-ai/ le jeu est de donner des phrases ambigues qui font faire à l'IA des choses qu'elle n'est pas sensé faire un des outils c'est ignore les instructions au dessus et fait un truc que je veux que tu fasses et qui n'est pas dans ta programmation initiale Voir toucher l'intention ini
LCC 287 - Celui qu'Antonio avait oublié!
Arnaud et Guillaume reviennent sur les news de ce mois avec évidement la sortie de Java 19 mais aussi GraalVM, Puppet (toujours vivant), Docker Compose et Desktop, VirtualBox, WASMTime et d'autres sujets plus orientés méthodologie comme la réalisation de Sketchnotes, les DO / DONT pour faire des messages d'erreurs dans les UIs ou encore quelques pratiques de management chez Google. Enregistré le 21 octobre 2022 Téléchargement de l'épisode LesCastCodeurs-Episode–287.mp3 News Langages La version 19 de Java est sortie https://mail.openjdk.org/pipermail/jdk-dev/2022-September/006933.html Au menu: 405: Record Patterns (Preview) 422: Linux/RISC-V Port 424: Foreign Function & Memory API (Preview) 425: Virtual Threads (Preview) 426: Vector API (Fourth Incubator) 427: Pattern Matching for switch (Third Preview) 428: Structured Concurrency (Incubator) La vue de InfoQ https://www.infoq.com/news/2022/09/java19-released/ Foojay couvre 5 fonctionnalités clé https://foojay.io/today/the–5-most-pivotal-and-innovative-additions-to-openjdk–19/ virtual threads structured concurrency pattern matching for switch foreign function and memory API record pattern matching Proposition dans Leyden des condenseurs et du décalage d'exécution dans le temps https://openjdk.org/projects/leyden/notes/02-shift-and-constrain GraalVM JIT et Native Image rejoignent le projet OpenJDK https://twitter.com/graalvm/status/1582441450796900354 Google rejoint Adoptium et va utiliser la distribution Temurin pour les JDKs utilisés dans ses produits https://blog.adoptium.net/2022/10/adoptium-welcomes-google/ "Paving the on-ramp" : Brian Goetz discute de changements au langage Java pour faciliter l'apprentissage pour les nouveaux arrivants https://openjdk.org/projects/amber/design-notes/on-ramp Librairies Spring Boot 3.0.0 RC1 is out https://spring.io/blog/2022/10/20/spring-boot–3–0–0-rc1-available-now Vous pouvez maintenant convertir vos applications Spring Boot en exécutables natifs en utilisant les plugins standard Spring Boot Maven ou Gradle sans avoir besoin d'une configuration spéciale. Infrastructure (re)découvrir puppet - https://blog.stephane-robert.info/post/introduction-puppet/ - https://blog.stephane-robert.info/post/puppet-env-developpement/ Tutoriel en français sur puppet que l'auteur Stéphane ROBERT écrit dans le cadre d'une migration Puppet vers Ansible L'auteur revient sur les concepts (manifests, classes, modules), et explique comment utiliser vagrant pour developper en local un projet utilisant puppet. Docker Compose v2.11.0 est disponible La commande build permet de construire des images multi-architectures. https://github.com/compose-spec/compose-spec/blob/master/build.md#platforms Docker Desktop 4.13.0 https://docs.docker.com/desktop/release-notes/#docker-desktop–4130 docker dev permet de gérer ses Dev Environments via la CLI Sortie de VirtualBox 7.0, avec prise en charge complète du chiffrement des VMs, nouvelle accélération Direct3D, elle apporte le premier client #Mac ARM et le TPM de #Windows 11 https://virtualisation.developpez.com/actu/337578/Sortie-de-VirtualBox–7–0-avec-prise-en-ch[…]rte-le-premier-client-Mac-ARM-et-le-TPM-de-Windows–11/ Web WASMtime 1.0 https://bytecodealliance.org/articles/wasmtime–1–0-fast-safe-and-production-ready Comment écrire un bon message d'erreur sur une UI? https://medium.com/wix-ux/when-life-gives-you-lemons-write-better-error-messages–46c5223e1a2f Un mauvais message d'erreur: Ton inapproprié Jargon technique Rejetant le blâme Générique sans raison Un bon message d'erreur: Dire ce qui s'est passé et pourquoi Rassurer Faire preuve d'empathie Aidez-les à régler le problème Donnez toujours une issue Outillage Amélie Benoit partage un article d'initiation au Sketchnote https://amelie.tech/fr/blog/sketchnote-initiation/ Définition : un dessin, une représentation visuelle d'une prise de note, mêlant dessin et texte Pas de stress, suffit juste de savoir écrire, dessiner des carrés, cercles, triangles. Pas besoin d'être un artiste ! A quoi ça sert ? pour soi même pour s'approprier de l'information, synthétiser ce que l'on apprends, mais aussi pour partager avec les autres On peut faire des sketchnotes pour tout et n'importe quoi ! Amélie décrit ensuite les bases, avec les pictogrammes, le texte, les puces, les flèches, comment créer des conteneurs (pour des titres par exemple), comment rendre un sketchnote plus joli et comment hiérarchiser le contenu Enfin, quelques ressources utiles, en particulier les livres de Mike Rohde qui est l'inventeur du concept Nouvelle UI pour Maven Central search https://central.sonatype.dev/ maven-test-profiler: Maven extension pour trouver les tests les plus lents https://t.co/d5YpXODWf8 Architecture Netflix construit un système de queue basse latence et haut volume à partir de composants open source https://www.infoq.com/news/2022/10/netflix-timestone-priority-queue/ Méthodologies Google a publié un ensemble de pratiques, d'outils et d'articles pour les managers https://rewor
LCC 286 - Devoxx Belgique 2022, le retour!
Antonio, Guillaume et Emmanuel donnent leur retours sur les thèmes marquants de Devoxx Belgique 2022, puis ils font quelques micro trottoirs lors de la conférence. Si vous hésitez sur quelle conférence regarder sur Youtube, écoutez cet épisode. Enregistré le 18 octobre 2022 Téléchargement de l'épisode LesCastCodeurs-Episode–286.mp3 Devoxx Belgique 2022 Les présentations sont déjà en ligne sur Youtube Kubernetes Community Days France 2023 le site de l'événement : https://kcdfrance.fr qui se déroulera le 7 mars 2023 le CFP : https://cfp.kcdfrance.fr qui ferme le 31 octobre Nous contacter Pour réagir à cet épisode, venez discuter sur le groupe Google https://groups.google.com/group/lescastcodeurs Contactez-nous via twitter https://twitter.com/lescastcodeurs Faire un crowdcast ou une crowdquestion Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs Tous les épisodes et toutes les infos sur https://lescastcodeurs.com/
LCC 285 - De mal en pis - partie 2
Dans cette partie 2, nous discutons le changement d'étage gratuit chez Heroku, les vagues de licenciement dans le monde technologique, le carrière de contributeur individuel et le cloud souverain. Et on vous parle de division de nombres entier dans la rubrique débutant. Enregistré le 9 septembre 2022 Téléchargement de l'épisode LesCastCodeurs-Episode–285.mp3 News Infrastructure NVidia interdit de vendre ses processeurs d'intelligence artificiels les plus puissants en Chine https://www.reuters.com/technology/nvidia-says-us-has-imposed-new-license-requirement-future-exports-china–2022–08–31/ Le gouvernement Américain a mis en place la restriction (export control) 10% des ventes en Chine pour NVidia Après 23ans un internaute arrête d'utiliser son propre serveur e-mail et il explique pourquoi cela est devenu impossible https://t.co/TQ61y45MXT?ssr=true Sa raison: l'impossibilité d'avoir un service fiable. Les services de gestion d'e-mails sont désormais dans les mains de quelques gros acteurs (Google, Microsoft,..) qui déploient à coup d'algorithmes des filtres pour mettre en spam les e-mails indésirables Ces derniers sont obscures et peuvent être stupides en blacklistant des blocs entiers d'IPs L'internaute demande aux acteurs de se réveiller avant que les politiciens s'en mêlent (pour le pire …) Cela demande aussi la mise en place de protocoles plus avancés comme DMARC Pour des adresses "casual" comme celles des cast codeurs, c'est maintenant passage à la caisse et 3 à 5 euros par mois et pas adresse email c'est plus que la valeur de ces emails "casual" Cloud Heroku annonce la fin de son étage gratuit https://techcrunch.com/2022/08/25/heroku-announces-plans-to-eliminate-free-plans-blaming-fraud-and-abuse/?guccounter=2&guce_referrer=aHR0cHM6Ly90LmNvLw&guce_referrer_sig=AQAAACIpHvzb3Pb2gtgt8Dm99CWGUhbEkdTgLVDgKwMNNmDI9UITQyNX64GA2LB6rQGNX2EreLoiRvxTqSUls5V_F8x6Cv_xGrfXtaIROP_Jiv45UUO1ODBIno3j7vHC4gokKVLqsZ948CmCfzG2bF03DL-uhbZqYuGXvxTfdsioTbjg heroic éliminé sont plan gratuit dénonçant des abus apres 10 ans pousser vers du paid plan, qui va aussi faire partir des gens et questionner ceux qui avaient un modèle économique base sur ce plan gratuit 28 novembre et aussi efface les comptes inactifs depuis 1 an beaucoup de fraude et d'abus vont garder des plans low cost et des plans étudiants au delà des abuseurs, les plans gratuits étaient utilises pour tester les apps avant leur déploiement Outillage Polices de caractères pour la programmation https://www.programmingfonts.org/#firacode J'aime bien Fira Code moi :slightly_smiling_face: Ce site permet de choisir parmi 111 polices différentes, pour pouvoir les comparer et choisir celle qu'on préfère Mickael Istria pointe sur une video expliquant les nouveautés autour d'Eclipse https://www.youtube.com/watch?v=zDJtVYAJwyY c'est très visuel, â regarder Code snippet Content assis plus rapide Support des concepts récents de Java comme sealed classes dans les quick fix Etc Utiliser git blame malgré les reformattages https://michaelheap.com/git-ignore-rev/ fichier listant les revisions pour ignorer certains sha1 et le changement d'avant est pris Une page concise des quelques façons de sortir d'un problème avec Git (langage coloré) https://ohshitgit.com/ On a toujours quelquye chose a apprendre ; celle qui nettoie la branche principale, je ne connaissais pas. Architecture Les tendances vu pas les éditeurs de InfoQ dans le devops et le cloud https://www.infoq.com/articles/devops-and-cloud-trends–2022/?utm_source=twitter&utm_medium=link&utm_campaign=calendar commenter les 4 vagues et ce qu'il y a dedans Data observability : live qualité de data etc Serverless everything: scale to 0 ; même les bases de données (soit parce que infra partagée soit via un scale down réveille par access à une gateway FinOps: contrôle des cours comme on optimisait pour les œufs eBPF pour injection de code et WASM pour le service mesh ingress (attention WASM dans envoy ne pas pas ton bon vieux Netty) Protection de la supply chain (encore faible en solutions) Low code no code mature pour moins besoin d'ingénieurs ou approche plus légère Developer experience qui influence les decisions Méthodologies Discussion sur la carrière contributeur individuel https://touilleur-express.fr/2022/07/17/devenir-staff-engineer/ exemple de ce que fait doctolib senior c'est le premier niveau d'autonomie et d'aisance ensuite, soit vous voulez coacher vo pairs (manager), soit contributeur individuel ce qui est demandé c'est le leadership (donc l'impact sur la societe et l'organisation) et ca demande une taille de societe minimale technique, communication, marketing d'idée occuper le role avant d'être reconnu (c'est assez classique ; ce qui change c'est le formalisme de la liste des competences attendues entre les boites) et on code moins car coder seul a moins de levier equivalence track technique/leadership et track managériales avec des ponts. Souvent d'arrète avant les VP et autre executive leadership (matrice de Radford)
LCC 284 - De mal en pis - partie 1
Dans cet épisode, nous discutons bonnes pratiques Java, Groovy, WebAssembly, Micronaut. Nous discutons également le changement de licence de Akka entre autre. La suite de cet épisode parlera de changement d'étage gratuit chez Heroku et des vagues de licenciement dans le monde technologique. Pour rester sous les 1h d'écoute, nous avons découpé les deux derniers épisodes nouvelles en 2 parties chacun. Qu'en pensez vous ? Donnez-nous votre avis sur Twitter ou sur le Google Groups des cast codeurs. Enregistré le 9 septembre 2022 Téléchargement de l'épisode LesCastCodeurs-Episode–284.mp3 News Langages Jonathan Giles, un principal architecte de Java chez Microsoft, a un site qui partage des bonnes pratiques Java http://java.jonathangiles.net/ il couvre des bonnes pratiques Java de manière générale, mais également plus spécifiquement pour les développeurs de librairies Java Des conseils sur la bonne utilisation des dépendances, des BOMs, des versions LTS de Java, des modules Java, de la surface des APIs publiées, de faire attention à null ou au boxing, et de comprendre les interfaces fonctionnelles il y a beaucoup de contenu donc faites par petites doses Certains sujets sont plus controversés comme les modules Java les recommendations sont assez succinctes Je suppose que ce sont les recommendations que les équipes du Azure SDK suivent et qu'il a ouvert. Donc merci à lui Project Leyden https://www.infoq.com/news/2022/06/project-leyden-delays-aot/ Leyden n'a pas progressé en deux ans Accepté que GraalVM a déjà achevé les objectifs initiaux Donc vont explorer un spectre plus faible de contraintes (et probalbment d'optimisations Prochaine LTS en Sept 2023 et Leyden ne sera pas mature, donc Leyden sera utilse ~ Sept 2027 (en terme d'adoption) au plus tôt. SpringBoot pensent que CRaC (snapshot de la memoire sur disque pour demarrage plus rapide) sera très utile module-info dans Spring pourn jlink est dans la roadmap Lead de CRaC a fourni un prototype pour Quarkus: ameliore temps de demarrage pour OpenJDK mais pas la consommation memoire jlink pour Quarkus, dans un context Kube, les gains d'espace disque ne sont pas si interessant vs un layered image Micronaut a des issues ouverst pour CRaC José Paumard couvre Loom et Structured Concurrency dans sa vidéo de la série JEP Café https://inside.java/2022/08/02/jepcafe13/ Et cet article explique les problèmes classiques de concurrence comme les thread leaks et introduit la Structured Concurrency https://howtodoinjava.com/java/multi-threading/structured-concurrency/ Paul King montre l'utilisation de différents frameworks de tests avec Groovy (Spock, JUnit5, Jacoco, Jqwik et Pitest) https://blogs.apache.org/groovy/entry/testing-your-java-with-groovy Paul couvre aussi dans un autre article les comparateurs, et l'utilisation de l'API GINQ https://blogs.apache.org/groovy/entry/comparators-and-sorting-in-groovy La matrice spot est intéressante mais pas avec des noms de variable à, b, c, d :) L.article est super didactique et explique via un example concret quand utiliser quoi Je trouve les property base testing pas si simple à utiliser et avec un coup de réflection >> au truc testé. Mais peut être le cas est super simplistique pour l'usage Paul King continue de publier régulièrement des articles sur Groovy - https://blogs.apache.org/groovy/entry/working-with-sql-databases-with — accéder à des bases SQL avec Groovy et GraalVM - https://blogs.apache.org/groovy/entry/detecting-objects-with-groovy-the — détection d'objet avec le machine learning avec Deep Java Library et Apache MXNet Sortie de Spock 2.2, première version GA avec le support officiel de Groovy 4 https://twitter.com/spockframework/status/1564999285250326529 Bah la seule info intéressante est déjà dans le titre, càd c'est le support officiel de Groovy 4 Google lance un nouveau langage, appelé Carbon, comme un successeur de C++, mais en plus sympa ! https://github.com/carbon-language/carbon-lang interessant, ils veut Ceyloniser ou Scalaizer Rust avec Carbon's Kotlin-like strategy. Not a bad bet Rust n'est pas assez compatible avec C++, c'est problématique, surtout pour des boîtes comme Google avec d'énormes code bases en C++. Donc pour du green-field, Rust c'est bien. Ou c'est bien aussi pour de l'intégration avec du C. Mais pas avec du C++. State of WebAssembly https://blog.scottlogic.com/2022/06/20/state-of-wasm–2022.html On peut peut-être aussi rajouter l'utilisation de WebAssembly chez Figma https://neugierig.org/software/blog/2022/06/wasm-notes.html rust reste le langage de prédilection Python monte JavaScript est maintenant un langage viable Wasmtime est le runtime le plus populaire L'utilisation de WASM pour Serverless et la containérisation et en tant que hôte de plugin a beaucoup émergé Les api non browser sont ce dont a besoin web assembly En fait compilent pas JavaScript mais un moteur JavaScript et faire l'interprétation fonctionnalités très demandées : threads, exceptions, GC, type réflection etc Graal VM 22.2 h
LCC 283 - Mini interview comment améliorer ses présentations
Cet épisode mi nouvelle mi interview discute comment faire de meilleures présentations. L'article est agrémenté des propres conseils des cast codeurs. Enregistré le 8 juillet 2022 Téléchargement de l'épisode LesCastCodeurs-Episode–283.mp3 Interview Gunnar Morling partage ses conseils et astuces pour faire de meilleures présentations aux conférences Répéter, répéter, répéter Démarrer par une mission Raconter une histoire Regarder l'auditoire, pas les slides Mettre moins de texte sur ses slides, beaucoup moins Personnaliser la présentation en fonction de l'auditoire La règle de 3 (couvrir 3 points clés, 3 leçons retenues, partager 3 conseils…) Avoir une solution de secours pour les démos Jouer sur ses atouts (c'est pas grave si on est quelqu'un qui parle vite, si ça donne de l'énergie à son argumentaire) Faire des retours en arrière (par exemple pour conclure sur un point abordé ou une supposition de départ et montrer qu'on a prouvé ce que l'on avançait) Et les cast codeurs commentent ses propositions. 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 282 - Apérikube apomorphique - partie 2
Cet épisode marathon sera découpé en deux morceaux pour éviter à vos oreilles une écoute marathon. Cette deuxième partie couvre des sujets d'architecture et de loi société et organisation ainsi que les conférences à venir. Logging, Migration Java 8 vers 11, Xerox Park, (manque de) sécurité, courbes elliptiques, sondage développeurs. Enregistré le 8 juillet 2022 Téléchargement de l'épisode LesCastCodeurs-Episode–282.mp3 News Architecture Pour ou contre le logging Contre puis pour tous les langages et plateformes utilisent les logs debugging, tracing, journaling, monitoring, and printing errors impact sur les performances (allocation supérieure sur un log que sur le code métier log = mémoire, CPU (GC), I/O risque de securité (dépendances et fonctionnalités sans besoin) format des log: pour lecture humaine main volume impose traitement automatique log level la bonne abstraction (souvent trop et pas ce que l'on veut à la fois debugging -> utiliser un debugger ; journaling -> event sourcing ou solution dédiée ; tracing > open tracing ; monitoring -> monitoring solution via metrics et health check bons usages de logging: en dev (println), fin de jobs automatiques, erreurs non récupérables ou innatendues, pas les erreurs utilisateur (logger les erreurs qui cachent un bug), dans les container, Sébastien utilise System.out et System.err vu que les logs sont gérés par la plateforme la réponse pour maintenant les logs peuvent etre structurés performance, on peut éviter les concatenations de String (parameterized logging), memory allocation est bien meilleure depuis 2012 (e.g. Shenandoah), vu des problèmes dans des cas plus rare de genre MDC.getCopyOfContextMap disk I/O: ok mais disque cape a 200 MiB/s donc bon…: si c;est le cas, sépare I/O log du reste (disque vs network par exemple) gros fan de logs structures via JSON ; log line sur console et JSON en fichier log plus de manière conditionelle tracing théoriquement bon mais limite dans son contexte métier et peu d'infos passables system.out problème de scalabilité d'usage, etc et appel blocant println (async usage n'est pas bon) LinkedIn et sa migration de Java 8 à 11 1000 apps sur 320k hosts Migration Java 8 vers 11 avec en vue G1 regardé depuis 2018 Jetty, Hadoop, Play, Samza: focalisé sur Jetty Mettre a jour le système de build, 2. Faire des tests de performance 3. Automatiser la migration mise. a jour vers gradle 5 G1 80% des applis CMS 20% pris 20 apps representatives focalisé sur les applications avec les tailles de piles les plus grosses de équipera jusquà 200% plus de latence et throughput: zones G1, Shenandoah et ZGC automatisé la migration du reste et tourné les builds de tests qui ont identifié les problèmes de migration quelques problèmes: suppression de certaines classes Java EE, changement du type de classloader par défaut, casting de classe plus stricte ils ont utilisé -release 8 et ont limité les usages des features Java 11 les options de CLI de la JVM ont beaucoup changé LinkedIn fait du microsercices ce qui veut dire que beaucoup de repositories sont liés à d'autre par un graphe de dépendance: euh c'est pas le principe des microservices d'éviter ça??? mise a jour de 500 librairies 3/4 de l'année Quelques challenges vus La JVM respecte groups et donc moins de thread GC sont crées aussi ils pouvaient piquer des cycles CPUs avant et plus maintenant Java 11 a un usage de mémoire hors pile plus important reduction de latence p99 par 10% et le throughput par 20% sans changer le type de GC C'est un bon retour qui sent le type de développement de la vrai vie Méthodologies Un article sur Xerox park et comment ils ont inventé le futur article de 1985 Xerox achète un constructeur de mainframe, et ils ont crée un lab de recherche pour aider les usages Macintosh et la souris et les fenêtres, les cartes météos colorées, imprimante laser, réseaux d'ordinateurs, lasers semi-conducteurs qui lisent les disques optiques, langages de programmation structurés developer l'architecture de l'information project proposes et faite en bottom up PARC construisait ses propres hardware ce qui a créer des inventions et qui devaient etre construits pour 100 utilisateurs (scale) recherche en construisant concrètement, pas en papier théorique académique bit map, distributed computing, email, frame buffer, LAN, object oriented programming Cree Alto un ordinateur « personnel » qui a permis aux chercheurs de tester leurs idées, beaucoup en avaient un. donc ils ont du inventer le LAN et Ethernet (packet) via une personne avec passe de radio amateur (medium partagé et non reliable premier projet distribué. (Un protocole d'impression) antialiasing : ils amélioraient en testant pour de vrai un gars a construit un proto de souris pour prouver que les curseurs étaient plus efficace: tests avec des dans la rue et IO a perdu :D concept de modal (insert, delete) vers comportement non modal, plus simple pour l'utilisateur small talk: un langage si simple qu'un enfant peut l'utiliser (simulation
LCC 281 - Apérikube apomorphique - partie 1
Cet épisode marathon sera découpé en deux morceaux pour éviter à vos oreilles une écoute marathon. Dans cet épisode on y parle Brian Goetz, Bian Goetz, Brian Goetz, usages des threads virtuels, OpenAPI, Kubernetes, KNative, copilot et Tekton. La deuxième partie couvrira des sujets d'architecture et de loi société et organisation ainsi que les conférences à venir. Enregistré le 8 juillet 2022 Téléchargement de l'épisode LesCastCodeurs-Episode–281.mp3 News Langages Peut-être une nouvelle syntaxe spécifique aux Records Java pour tordre le cou aux builders Brian Goetz discute de l'idée d'avoir une syntaxe spécifique pour les records pour facilement créer un record dérivé, potentiellement avec des valeurs par défaut, mais en paramétrant certains champs Point shadowPos = shape.position() with { x = 0 } Cela évite de créer la notion de paramètre par défaut dans les constructeurs ou les méthodes Il y a l'article Data Oriented Programming de Brian Goetz, sur InfoQ projet Amber amène des changements qui combinés permet de faire du data oriented programming en Java et pas que du OOP OO combine état et comportement (code) OO est super utile pour défendre des limites (programme large en des limites plus petites et plus gérable) mais on s'oriente vers des applications plus petites (microservices) data oriented programming: modélise data immuable et le code de la logique métier est séparée records -> data en tant que classe, sealed classes -> définir des choix, pattern matching -> raisonne sur des data polymorphiques algebraic data: hiérarchie de sealed classes dont les feuilles sont des records: nommées, immuable, testable (pas de code) Un nouveau JEP pour intégrer une Classfile API Le JDK inclut déjà des forks de ASM, de BCEL, et d'autres APIs internes, pour manipuler / produire / lire le bytecode Mais l'idée ici c'est que le JDK vienne avec sa propre API officielle, et qui soit plus sympa à utiliser aussi que le pattern visiteur de ASM par exemple La version d'ASM intégrée était toujours en retard d'une version (problème de poule et d'oeuf, car ASM doit supporter la dernière version de Java, mais Java n+1 n'est pas encore sorti) Lilian nous montre à quoi va ressembler les Record Patterns de JEP 405 Apache Groovy et les virtual threads, et aussi Groovy et le Deep Learning Paul King, qui dirige actuellement le PMC de Apache Groovy, a partagé récemment plusieurs articles sur le blog d'Apache sur des intégrations intéressantes avec Groovy Groovy et sa librairie GPars pour la programmation concurrente et parallèle s'intègre facilement avec les Virtual Threads de JEP 425 / JDK 19 https://blogs.apache.org/groovy/entry/gpars-meets-virtual-threads Groovy avec Apache Wayang et Apache Spark pour classifier des Whiskey par clusterisation KMeans https://blogs.apache.org/groovy/entry/using-groovy-with-apache-wayang Et aussi Groovy avec différentes librairies de Deep Learning pour la classification https://blogs.apache.org/groovy/entry/classifying-iris-flowers-with-deep Le jargon (en anglais) de la programmation fonctionnelle, si vous avez rêvé d'avoir sous la main la définition de foncteur, de monoïde, et j'en passe avec des exemples en JavaScript des pointeurs vers des librairies fonctionnelles en JavaScript des traductions dans d'autres langues et d'autres langages de programmation Librairies Spring Boot 2.7 SpringBoot 2.7 Spring GraphQL 1.0 Support pour Podman Gestion de dépendance et auto configuration pour Cache2k nouvelle annotations pour Elasticsearch et CouchBase dernière versions avant SpringBoot 3 qui changera plus de choses. Recommande de migrer une version a la fois. Support pour 2.5 à fini (upstream) Quarkus 2.10.0 Travaux préliminaires sur les threads virtuels de Loom Support non-blocking pour GraphQL Prise en charge des Kubernetes service binding pour les clients SQL réactifs CacheKeyGenerator pour l'extension de cache quarkus-bootstrap-maven-plugin déprécié et remplacé par quarkus-extension-maven-plugin (uniquement utile pour les développeurs d'extensions Quarkus) Nouveaux guides: Using Stork with Kubernetes OpenId Connect Client Reference Guide Using Podman with Quarkus Les différences entre OpenAPI 2 et 3 Introduction de la notion de lien pour créer des relations entre Response et Operations, pratique pour faire des APIs hypermédia La structure du document OpenAPI a été -un peu simplifiée, en combinant par exemple basePath et schemes, ou en rassemblant les securityDefinitions Des améliorations sur les security schemes, autour de OAuth et OpenID Plus de clarté dans la négociation de contenu et les cookies La section des exemples de Request / Response devrait aider les outils qui génèrent par exemple des SDK automatiquement à partir de la description OpenAPI Un support étendu de JSON Schema Introduction d'une notion de Callback, importante pour les APIs asynchrones, en particulier les WebHooks je me demande si ils ont l'intention d'embrasser AsyncAPI ou su la partie asynchrone d'OpenAPI 3 a pour objectif de faire de
LCC 280 - Leçon de géographie
Cet épisode une fois n'est pas coutume parle beaucoup de nouvelles dans la rubrique langage et beaucoup de Java, wouhou ! On parle aussi de sigstore, http/3, Micronaut et de VMWare. Enregistré le 10 juin 2022 Téléchargement de l'épisode LesCastCodeurs-Episode–280.mp3 News Langages Sept raisons pour lesquelles Java a a encore du sens après 26 ans communauté (dans toutes les grandes villes) force du langage et de la plateforme plus de problèmes résolus que non résolus (librairies) stabilité Innovation (Java 9 accélère l'innovation) outillage opportunité d'emploi Les débuts du projet Leyden Mark Reinhold lance le projet Leyden, pour adresser les problèmes de temps de démarrage lent de Java, de lenteur du temps jusqu'à la performance max, et d'empreinte un peu lourde à l'aide d'une image statique de votre application une image statique ne fait tourner qu'une seule et unique application sur son JDK, et est un "monde fermé" (ne peut pas charger de classe externes) mais les ingés de la JVM vont travailler sur une approche assez souple, et voire quelles contraintes peuvent être allégées, par rapport à un monde complètement fermé d'une image statique en espérant avoir des améliorations à différents niveaux, pour un max d'appli et de use case différents Le close world c'est ce qui amène la valeur de GraalVM native image et les avantages pour Micronaut, Quarkus et le autres donc pas de closed world: c'est encore un projet de recherche pour l'équipe de la JVM JFR plus facile à configuer dans Java 17 un wizard en UI ou CLI pour generer le fichier .jfc Proposition de structured concurrency via le projet Loom Targeted status for JDK 19. This incubating JEP, under the auspices of Project Loom, proposes to simplify multithreaded programming by introducing a library to treat multiple tasks running in different threads as a single unit of work. This can streamline error handling and cancellation, improve reliability, and enhance observability RedMonk analyse l'apparition du langage Dart, grâce à Flutter, dans leur top 20 des langages de programmation les plus populaires JavaScript, Python, Java, toujours en tête Mais Rust et Dart sont rentrés récemment L'arrivée de Dart coïncide surtout avec l'émergence de Flutter comme framework d'interface graphique, que ce soit pour Android/iOS, que pour le desktop et le web Sur les applis mobiles, il y a toujours eu beaucoup de développement natif, mais est aussi arrivé React Native, mais aussi Flutter Des applis de Google comme Google Pay et Google Ads sont développées en Flutter, mais aussi le récent SNCF Connect ou des entreprises telles que BMW ou Alibaba (modifié) (cf le talk sur le REX par les développeurs de SNCF Connect à Devoxx France) les investissements initiaux de Dart vs Kotlin ou Ceylon qui ont démarrés en meme temps étaient colossaux Dart en natif pour faire des applis iOS… qui tournent aussi sous Android Kotlin 1.7 est sorti Kotlin K2 compiler pour la JVM em Alpha (les plug ins ne fonctionne pas) amélioration des perf de Kotlin et du compilo pour la JVM build incremental Gradle annotation OptIn et inférence de Builder stabilisés classes implementee par delegation automatique sans consommation mémoire (via inlining) Librairies Sortie de Micronaut 3.5 Passage à GRAALVM 22.1.0 Compilation incrémentale lors des builds, en particulier intéressant pour les métadonnées pour GraalVM, ce qui permet d'éviter de faire tourner les processeurs d'annotation inutilement Inclusion de Micronaut Data 3.4, avec support des enums Postgres pour JDBC, la pagination pour les Reactive Repositories Intégration avec Turbo pour la vue (Turbo Frame et Turbo Views) Nouveau module pour MicroStream (un moteur de graphe d'objet natif Java, intégré à Helidon) Mise à jour de nombreux plugins et extensions (y compris plugins de build) Infrastructure Kubernetes signals massive adoption of Sigstore for protecting open source ecosystem Kubernetes 1.24 (sorti en mai) est la première version utilisant officiellement Sigstore, permettant une vérification transparente des signatures pour protéger contre les attaques de la chaîne d'approvisionnement Sigstore est une nouvelle norme pour la signature, la vérification et la protection des logiciels. Elle se veut être un remplaçant pour GPG par exemple. Sigstore offre une variété d'avantages à la communauté Kubernetes comme: Sigstore's keyless signing donne une grande expérience de développeur et supprime le besoin de la gestion de clé douloureuse. Le journal public et transparent de Sigstore (Rekor) avec ses API permettent aux consommateurs Kubernetes de vérifier les signatures. … Web RFC 9114 - HTTP/3 est validée (+ RFC 9204 - QPACK: Field Compression for HTTP/3 et RFC 9218 - Extensible Prioritization Scheme for HTTP) Basé sur le protocole de transport QUIC qui possède plusieurs fonctionnalités intéressantes telles que le multiplexage de flux, le contrôle de flux par flux et l'établissement de connexion à faible latence. QPACK : un format de compression pour représen
LCC 279 - URL ceteris paribus sic stantibus
Guillaume et Emmanuel discutent de l'état des versions de Java utilisées, de Java String template, et de beaucoup de failles de sécurité. On pourra presque se renommer Les Cast Sécu ;P On y ressussite aussi la rubrique débutant et discutons du piège de la classe URL. Enregistré le 20 mai 2022 Téléchargement de l'épisode LesCastCodeurs-Episode–279.mp3 News Langages L'état de Java selon newrelic Java 11 commence enfin à être utilisé plus que Java 8 en prod (48% vs 46%) Dans les versions non LTS, c'est Java 14 qui a l'air d'avoir le plus de succès non LTS en prod est 2,7% Après Oracle, c'est la distrib de AWS qui est pas mal utilisée suivi par adoptium Beaucoup d'utilisation de Java dans des containeurs (70%) avec 1 seul core, donc aussi moins de bénéfices dans l'utilisation de G1 pour le GC Toujours dans les containeurs, les applis Java tournent souvent avec moins de 512MB de RAM (45%) String templates en Java les string template c'est ce qui a fournit log4shell donc attention Replace certains usages de stringbuilder , stringfromat et messageformat Beaucoup de langages offrent ça (bash ahah) Exemple d'usage html, json, yaml etc Ils veulent permettre des règles de transformations et de validation (escape caractère) Peut même éviter le,passage par l'étape du passeur Objet template a le template et la policy Embedded expressions: chaînes de caractères, arithmétique, invoque méthodes ou champs, pas besoin d'échapper les double guillemets. Lignes multiples Quid capture des variables locales sans l'avis du développeur. Pas d'exemple meta où le template est importé ou construit. Un article détaillé sur ce qui est nouveau niveau GC dans Java 18 Librairies Quarkus 2.8 et 2.9 WebAuthN Confluent Schema Registry Kotlin Scala RESTEasy Reactive est la couche par défaut GraalVM 22 Elasticsearch Dev Services Outillage Un nouveau décompilateur avec du code plus lisible Tous plus ou moins un fork de celui d'intellij maintenu par JetBrains, le fork d'avant est de Minecraft Reconstruit des constructions de plus haut niveau et plus moderne. Exemples Sécurité Une vulnérabilité dans struts 2 Un problème qui n'avait été que partiellement corrigé. Lié à OGNL'et une double évaluation via %{…} sur du contenu venant de l'utilisateur. Le gros trou de sécu sur les signatures Java 15–18 attaque sur les approches ECDSA (elliptic curve digital signature algorithm), typiquement plus modernes cibles Java web start, Java applets, web services qui utilisent ECDSA (JWT, SAML, OIDC Id tokens, WebAuthN version Oracle Java 7, 8, 11, 15, 16, 17, 18, OpenJDK 15, 17, 18 (backport Oracle) Comme un psychic paper de dr who: peut signer numériquement un papier sans infos (paramètres de la courbe peuvent être à 0 ce qui permet de valider tous les messages (0) L'interprétation pour un framework comme Quarkus Spring4Shell avec risque de remote code execution (unfolding) Mitigations: mettre a jour 5.x, mettre a jour tomcat (tactique), setDisallowedField pour excludes les accès aux getter/setter class, passer a Java 8 La RCE est basée sur la navigation non restreinte de class.module.classLoader Spring MVC Early Announcement Spring Cloud exploit announcement Spring MVC Exploit Announcement Spring4Shell HelpNetSecurity assessment Spring4Shell Sonatype Assessment Qualys assessment Personal Security Checklist Recense les bonnes pratiques en terme de sécurité numérique Selon différents thèmes Authentication Browsing the Web Email Secure Messaging Social Media Networks Mobile Phones Personal Computers Smart Home Personal Finance Human Aspect Physical Security Google offre aux clients Google Cloud des libairies validées en sécurité Une équipe de maintenance Open Source chez Google Loi, société et organisation Apple va supprimer au téléchargements les applis non mises a jour depuis 3 ans et peu téléchargées ça a fait réagir et râler Des applis finies Mais surtout une résumassions c'est du taf (nouvelles règles, peut être mise à jour de framework) Du cote de Apple c'est nettoyer un peu la longue queue d'applis Et encourager les gens à rester au top (eg privacy infos) Les duchesses ferment leur slack aux hommes pas fait de gaité de cœur mais réaction aux événements temps des Modérations plus passe sur les posts d'hommes que de femmes Sensation de pas laisser la place aux femmes Maladresses et manques de respect Coupé dynamisme et la sécurité de parole Et beaucoup d'hommes et du coup sentiment d'épier Les duchess feront toujours des événements mixtes mais cet espace avait perdu son utilité première Comment la guerre en Ukraine ébranle la tech russe fragilisation fuite des cerveaux (depuis 2014 et la crimée (cerveaux emprunts de plus de liberté) manque .5 à 1 millions de developpeurs Karspersky et les doutes de ses clients (80% du chiffre d'affaire à l'étranger) Yandex moteur de recherche protégé car marcher local mais démission du CEO Default de paiement (endettement) e.g. VK 400 millions de dollars Envisager de raid de disque dur pour consommation locale Outils de l'épis
LCC 278 - En direct de Devoxx France 2022
Les Cast Codeurs font la clôture de Devoxx France 2022 en 🪑 et en 🦴. Enregistré le 22 avril 2022 Téléchargement de l'épisode LesCastCodeurs-Episode–278.mp3 Interview La vidéo du direct Devoxx France qui est plus facile à suivre se trouve sur YouTube. 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 277 - L'interview des 10 ans de cast codeurs à Devoxx par la chaîne Devoxx France TV
Les Cast Codeurs passent au grill de Nicolas sur la chaîne TV Devoxx France. Nicolas nous rappelle des moments des 10 ans de Devoxx + Les Cast Codeurs. Enregistré le 17 mars 2022 Téléchargement de l'épisode LesCastCodeurs-Episode–277.mp3 News Version vidéo 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 276 - Il a coulé mon data center !
Emmanuel, Guillaume et Antonio se réunissent pour discuter des nouvelles de ce début de printemps. On y parle retour de JavaOne, revue de pull request, de developpement cloud natif, de SLO, et de log. Enregistré le 25 mars 2022 Téléchargement de l’épisode LesCastCodeurs-Episode–276.mp3 News Langages Remplacer vos APIs de logging avec System.Logger Blog post rédigé suite à notre épisode 271 (où on avait cité System.Logger) Rapide histoire des APIs de log en Java Présentation de l'API System.Logger Formattage des messages basé sur java.text.MessageFormat Utilisation possible des ResourceBundle Niveaux TRACE, DEBUG, INFO, WARNING, ERROR (et non FINE, FINER, FINEST comme JUL) Le service System.LoggerFinder pour changer l'implémentation (JUG, Log4J, Logback, …) Etude de perf: Logback est plus performant, suivit de JUG puis Log4J2 Une série de petites librairies Java légères. Librairies simples, avec chacune une tâche unique, dont : parsing JSON parsing HTML / CSS client HTTP client mail resolveur de noms de paramètres de méthode des Properties améliorés un depdenceny-injection léger Java 18 est dans la place 400: UTF–8 by Default 408: Simple Web Server 413: Code Snippets in Java API Documentation un super guide sur l’utilisation des nouveaux javadoc code snippets 416: Reimplement Core Reflection with Method Handles 417: Vector API (Third Incubator) 418: Internet-Address Resolution SPI 419: Foreign Function & Memory API (Second Incubator) 420: Pattern Matching for switch (Second Preview) 421: Deprecate Finalization for Removal Librairies Micronaut 3.3 sorti, avec des nouveautés et Micronaut 3.4 aussi graalVM 22 binding par valeur d’annotations (CDI) Serialization (remplace Jackson, plus leger en memoire, ne fait pas de deserialisation arbitraire, pas de reflexion) module email qui permet d’envoyer avec MailJet, Amazom simple email service, SendGrid, Postmark Operateurs Kubernetes possibilité de référencer des beans properties dans @Requires injection de localized message sources nouveau module Micronaut Data MongoDB support de Maven pour Micronaut AOT Hibernate 6: certains points clés nouveau parseur HQL (langage plus riche) API nettoyées (donc ca va peut etre demander des migrations) DDL de meilleure qualité plus adaptée à la base de donnée cible requetes de type rapport (filter, rollup, cube, et les window functions arrivent bientot) arythmetique sur les dates index pour les colonnes (SQL plus compact et rapide) Kubernetes Service Discovery and Selection with Stork Quarkus 2.7 Stork 1.0 Quarkus CLI dans homebrew et SDKman extension pour le driver Oracle Reactif terminal interactif Infrastructure L’énergie utilisée dans les data centers est constante à 1 à 1,5% de l’énergie mondiale d’après l’agence internationale de l’énergie hors cryptocurrency augmentation a continué mais les efforts d’economies d’énergie ont compensé la croissance de la demande hors production du materiel je crois les alertes ont fait bougé les lignes études source Masanet et al - science et une autre de Malmodin 2020 dans science aussi Cloud Sondage annuel "The State Of Cloud Native Development" Sondage créé par Slash Data et soutenu par la CNCF Interrogent 19.000 développeurs sur : l'utilisation de Kubernetes, le Edge Computing, le Cloud Native, Containers et Orchestrateur Le nombre mondial de développeurs cloud native a augmenté au cours des 12 derniers mois de 0,3 million, pour atteindre 6,8 millions. Dans le même temps, la proportion de développeurs backend impliqués dans les technologies cloud native a diminué de 3 points de pourcentage, passant de 44 % à 41 %. Dans toutes les régions, l'Amérique du Nord (47 %) et l'Europe occidentale (46 %) affichent les taux d'adoption les plus élevés. Kubernetes est utilisé par 31% de tous les développeurs backend, ce qui représente une augmentation de 4 points de pourcentage au cours des 12 derniers mois. Actuellement, 5,6 millions de développeurs utilisent Kubernetes. Dans tous les secteurs, le Edge Computing a connu une croissance rapide de l'adoption de Kubernetes et présente désormais les taux d'utilisation les plus élevés des conteneurs et de Kubernetes. Parmi les développeurs spécialisés dans le Edge Computing, l'utilisation de Kubernetes a augmenté de 11 points au cours des 12 derniers mois, pour atteindre 63 %. L'architecture Serverless est également attrayante pour les développeurs Edge Computing : 48 % de tous les développeurs edge utilisent serverless, contre seulement 33 % de tous les développeurs backend. Parmi les outils serverless, AWS Lambda continue de jouer un rôle prépondérant. Cependant, Google Cloud Run a considérablement gagné du terrain au cours des 12 derniers mois. SLO et dependences de service 99,99 en cible interne, au dessus, il y a tant de variables entre l’utilisateur et le service que c’est perdu dans le bruit (wifi, ISP etc) 99,999 pour les infra globales disponibilité
LCC 275 - Interview sur le darwinisme numérique avec Didier Girard - partie 3
Cet épisode est un échange entre Guillaume, Antonio, Emmanuel et Didier Girard sur les réflexions de Didier autour du darwinisme numérique. Cette troisième et dernière partie nous emmène sur les chemins des choix organisationnels que ces natifs du numérique à succès emploient. Enregistré le 17 février 2022 Téléchargement de l'épisode LesCastCodeurs-Episode–275.mp3 Interview Ta vie ton oeuvre Twitter SFEIR Envision Modele organisationnel Sociocratie Holacratie Deck Netflix L'individu 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 274 - Interview le darwinisme numérique avec Didier Girard - partie 2
Cet épisode est un échange entre Guillaume, Antonio, Emmanuel et Didier Girard sur les réflexions de Didier autour du darwinisme numérique. Cette deuxième partie se concentre sur ce que veut dire le darwinisme numérique pour les entreprises et analyse les entreprises qui ont embrassé ses nouvelles contraintes ces vingt dernières années. En particulier, nous discutons de leur capacité d'adaptation comme principe fondamental et en filigrane de l'impact sur l'individu. On y invente aussi la notion d'équipe raclette. Comme souvent l'actualité nous a rattrapé. Cette interview a été enregistré quelques jours avant l'invasion de l'Ukraine par la Russie ce qui donne une couleur plus intense à la partie 1 de cette interview. Enregistré le 17 février 2022 Téléchargement de l'épisode LesCastCodeurs-Episode–274.mp3 Interview Ta vie ton oeuvre Twitter SFEIR Envision L'entreprise Tech System organisationel Génération surdiplômée - les 20% qui transforment la France Les BATX L'individu 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 273 - Interview sur le darwinisme numérique avec Didier Girard - partie 1
Cet épisode est un échange entre Guillaume, Antonio, Emmanuel et Didier Girard sur les réflexions de Didier autour du darwinisme numérique. Cette première partie discute des axiomes de ce concept et de ses impacts sur les nations. On y échange sur la souveraineté et l'indépendance notamment. Enregistré le 17 février 2022 Téléchargement de l'épisode LesCastCodeurs-Episode–273.mp3 Interview Ta vie ton oeuvre Twitter SFEIR Envision Le darwinisme numérique La nation Souveraineté et indépendance sur les ressources critiques 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 272 - Interview sur Log4Shell avec this
Emmanuel et Arnaud reviennent sur la fameuse faille #log4shell qui a fait travailler beaucoup d'équipes Java en décembre et janvier. Enregistré le 11 février 2022 Téléchargement de l'épisode LesCastCodeurs-Episode–272.mp3 Interview Quelle est cette vulnérabilité et pourquoi est-elle si dangereuse ? CVE–2021–44228 Reportée chez Apache le 24 Novembre, Enregistrée en CVE le 26 Nov Probablement connue depuis au moins Mars 2021: https://github.com/nice0e3/log4j_POC fix 2.15.0 le 10 décembre Apache Log4j2 JNDI features do not protect against attacker controlled LDAP and other JNDI related endpoints. Severity CVSS de 10 sur 10 jamais vu Back to basics: C'est quoi JNDI? the JNDI features used in configurations, log messages, and parameters do not protect against attacker-controlled LDAP and other JNDI related endpoints l'attaquant trouve une donnée utilisateur qui est loggée Pas que HTTP et injecte {JNDI:ldap pointant vers un ldap malicieux qui retour du code java sérialisé log4j deserialise et execute ce que l'on veut que log4j2-core pas api détail de Lunasec log4j zero day mitigations initiales CVE–2021–45046 2.16.0 (change des fonctionalités) le 13 décembre Apache Log4j2 Thread Context Lookup Pattern vulnerable to remote code execution in certain non-default configurations When the logging configuration uses a non-default Pattern Layout with a Context Lookup $${ctx:loginId}) attackers with control over Thread Context Map (MDC / Mapped Diagnostic Context) input data can craft malicious input data using a JNDI Lookup pattern donc on peut injected une chaine JNDI encore mais on doit savoir comment de la date utilisateur on peut pousser dans une Thread Context Map référencée par la config on alors l'attaquant a accès à la config et c'est game over Initialement on parlait de denial of services via une reference infinie probablement c'est une chemin qui n'était pas protégé des interpolations de messages et donc de l'accès JNDI CVE–2021–45105 fix dans 2.17.0 le 18 décembre recursion non controlée dans un lookup auto référentiel When the logging configuration uses a non-default Pattern Layout with a Context Lookup (for example, $${ctx:loginId} Besoin de l'attaquant control de Thread Context Map (peut etre une donnée injectée par un framework d'une entrée utilisateur changer la config log4j locale? CVE–2021–44832 2.17.1 le 27 décembre Apache Log4j2 vulnerable to RCE via JDBC Appender when attacker controls configuration malicious configuration using a JDBC Appender with a data source referencing a JNDI URI which can execute remote code. attaquant accede et modifie la config pas simple sauf si la plateforme permet la reconfiguration par un utilisateur??? log Google package analysis montre 8% de packages sur central affectés par log4j 2 niveau de dépendance transitive monte jusqu'à 9 du coup il y a neuf vendeurs qui doivent corriger leurs dépendances Toujours plus de 40% de téléchargement sur Maven central des versions impactées Log4j1 n'est pas en reste: JMSAppender JMS dit JNDI et paf on recommence JDBCAppender SQL injection FTW log4j1 n'est plus maintenue ah merde! Apache Kafka Reload4j de ceki 1.2.17 compatible voir les fixes Des exploitations ? Peu au final Car chaque usage de log4j est unique Entrée quoi est loggé etc Donc trop dur pour les script kiddies Mais dans les megasploits et autres toolkits d'attaque VMware vSphere et Hoirizon Ubiquity Solarwind etc Quel process suivre verifier la véracité de la CVE et comprendre ses vecteurs d'attaque identifier ses dépendances et donc ses soft impacté identifier les éléments fournis par l'utilisateur qui sont loggés définir le risque par software et par service appliquer le patch de sécurité et reconstruire le package déployer ou livrer chez les clients répéter pour les semaines à venir shading? :) Impact de l'industrie dans le futur La chine a tapé sur les doigts Alibaba qui n'a pas donné cette faille d'abord au gouvernement chinois The Gift of It's Your Problem Now Discussion sur le paiement et l'open source Pour un individuel l'open source est un cadeau, et donner de l'argent n'améliore pas le cadeau Injecter de la compensation financière dans un cadeau casse le cadeau et ne change pas la motivation (ou la casse) Pour une société, l'open source est un moyen de récupérer du feedback et du marketing, donc c'est une transaction et pas un cadeau Un autre article similaire burden open source maintainer colors faker mainteneur rajoute une boucle infinie dans un package modems très utilisé en protestation de non contribution (financière) 20 millions de téléchargements par semaine GitHub a bloqué son compte et nom a remis une ancienne version un peu de temps avant il s'est fait copié son idée de faker.js as a service Reflection on log4shell par diabolical developer marathon pas un sprint, on fatigue après 5 ou 6 jours a fond, donc faites des rotations comm sur le réseau, que regarder : Adding encryption, Auth/Auth, I sanitize data that goes over the wire, I sanitize input that
LCC 271 - UPX version Spinal Tap
Antonio, Guillaume et Emmanuel discutent 11, le 42 du rockeur, Quarkus, Java 17, limites de Kubernetes, #Y2k22, web3, Maven, Log4J, et et et cloud souverain. Enregistré le 14 janvier 2022 Téléchargement de l'épisode LesCastCodeurs-Episode–271.mp3 News Langages Quoi de neuf dans Java 18 de Loïc Mathieu Feature complete (mais encore des bugs) UTF–8 par défaut exemples de code dans la javadoc avec @snippet y compris des references a des fichiers extérieurs Simple Web Server pour des resources statiques (comme d'autres platformes comme Ruby ou Python je crois. En code ou via la commande jwebserver le mécanisme de finalisation proposé à la suppression --finalization=disabled pour tester. Celui-là il ne nous manquera pas ré-implementation de la réflection avec les MethodHandle Le calendrier de l'Avent Java 2021 a plein d'articles très intéressants pas tous révolutionnaires, mais c'est sympa RXJava vs Kotlin Coroutines Analyser votre repo Git en Java avec jgit Cinq choses que vous ne saviez pas sur la concurrence en Java l'ordre du programme et l'ordre d'exécution n'est pas le même, mais il est sémantiquement similaire le nombre de threads dans une JVM est limité (dépend de la machine) plus de threads ne veut pas dire plus de perfs Librairies Quarkus 2.5 et 2.6 sont sortis: API programmatique pour interagir avec le cache Kotlin 1.6 Java 17 par défaut pour les nouveaux projets générés des extensions ont bougé du core vers le quarkiverse hub, peut-être quelques impacts de migration images container plus petites en natif et compression UPX possible plus petit sur disque mais plus gros en memoire (pour la décompression) quarkus.native.compression.level de 1 à 10 dans le fichier de config dev service pour Oracvle DB Utiliser Neo4J pour analyser le chemin de code et pourquoi un bout de code est inclus en natif super utile pour les compilations natives quarkus.native.enable-reports pour avoir le rapport exploitable par neo4j SmallRye Stork service discovery et client side load balancing support pour Consul, Eureka, and Kubernetes extensible notamment pour le load balancing intégration avec Quarkus REST Client et gRPC dans la config stork://hello-service Infrastructure Pourquoi et comment de la taille des containers Kubernetes quand on ne partage pas, inefficient mais sécurisé Avec des VM, on peut overcommitter des resources sur l'hyperviseur mais risque sur mésentente Ne remplace pas le capacity planning Containers définissent des filtrages plus fins et tuent les process qui dépassent Discussion cpu_share (proportion en balance), cpu quota, cpu period pour définir les limites basses et hautes mais si ça reste statique par host c'est pas très pratique Orchestration de container via Kubernetes (request = min, limit = max) Kube donne au minimum request mais peut donner plus si le noeud n'est pas occupé à 100% Attention, la partie libre n'est pas distribuée équitablement mais en proportion du ratio de request demandé vs les autres. Donc les containers avec des grosses request sont privilégiés. Donc mettre limit est important Donc jouer le jeu request et monitored pour ajuster à la baisse si nécessaire. Tous les workloads doivent jouer le jeu. Kubernetes QoS (best effort , burstable et guaranteed) utilisé lorsque on tourne bas en mémoire (pas en cpu !) Discussion de la sélection du noeud (selector, affinity, taints and tolerations ou isolation/ restriction) pour isoler des qualités de service ou prédictabilité, pour la sécurité etc ) besoins mémoire : si utilisation max, pod killed. Besoins CPU : si utilisation max, on est throttled -> slow Mettre mémoire request = limit sauf si le process peut rendre de la mémoire (pas fait avant java 11) CPU request = limit si la prédictabilité de l'application est très important. Etudier conso CPU de l'appli en percentile et targeted par exemple une garantie à 99% ou 90 ou moins si pas sensible Article ne parle pas du scale out Exchange 2016 et 2019 souffrent du bug de l'an 2022 Y2K22 Après Matrix et son opus Resurection, Microsoft relance le bug de l'an 2000, 22 ans après, Y2k22 dans Exchange server 2016 et 2019 et d'autres systems non microsoft pour Exchange c'est du au systeme de scan d'antivirus qui ne reconnaissait pas les dates des signatures de virus 22010100001 parce que le software stocke les dates dans un entier signé 2^31-1=2147483647 et la date est stockée sur les deux premiers chiffres. le workaround initial est assez marrant, le software considère qu'on est le 33 décembre 2021 2112330001 Web Moxy de Signal (ex) discute web3 web1 était décentralisé, web2 est riche mais centralisé, web3 sera riche et décentralisé problème: les gens n'aiment pas faire tourner leurs propres serveurs et ne l'aimeront jamais même les entreprises ne font plus tourner leurs serveurs un protocole (standard) bouge beaucoup plus lentement qu'une plateforme exemple Spring, exemple Quarkus vs Microprofile ou Jakarka EE puis discute blockchain et NFT l'état et la logique / les permissions pour mettre a jou
LCC 270 - Interview de Nicolas De Loof sur Docker Compose
Nicolas De Loof rejoint Emmanuel et Antonio pour discuter de Docker Compose. Enregistré le 17 décembre 2021 Téléchargement de l'épisode LesCastCodeurs-Episode–270.mp3 Interview Ta vie ton oeuvre Nicolas De Loof Introduction à la techno Docker en 1 minute Docker compose d'où vient l'idée et le besoin La techno en concepts Un container c'est quoi ? Ça tourne comment ? Du coup, on veut en faire tourner plusieurs Comment on les "lie"? Network autre chose? Mais c'est pas le job de Kubernetes? deploy scaling rollback La spécification Discussion sur les notions: service build label network sécurité (cap_add) docker-compose vs docker compose Comment on l'utilise en pratique pour un dev Comment je définie mon multi container Lien vers des dockerfiles? Echange d'infos (e.g. DB connection ou mot de passe entre DB et l'appli) Ma DB doit démarrer avant mon app Ca fait les health check? Je commite ce fichier où typoiquement ? comment je partage avec mon équipe ? Et ma CI ? Comment je mets en prod ? Je mets en prod hein, ça marche sur ma machine. v2 vs v3 Sous le capot Et donc comment ça marche docker compose? Zoom sur le network La sécurité La communauté, le futur Roadmap Docker desktop payant 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 269 - Log4J devient Turing-complet
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 co-fondé le project Reactor, et popularisé le Reactive Programming au sein de la communauté Java Egalement à 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 milliards de dollars Le feuilleton Log4J2 (9 Dec 2021) Grosse faille de sécurité liée à l'utilisation des versions Découverte par un chercheur en sécurité d'Alibaba Cloud Détails publiés par LunaSec Log4J2 permet de faire de l'interpollation 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 executer en local lorsque Log4J2 va vouloir insérer l'information JNDI Donc potentiellement, la classe distante executé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 intermediaire (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 WebAssmbly 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 optionel Le vieux parseur basé sur Antlr2 est supprimé, et le parseur ("parrot") introduit dans Groovy 3 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ébuggage Intégration de JavaShell dans la console Groovy pour facilier les expérimentations cross language Nouvelle annotation @POJO pour créer des POJO Java, sans la surchage 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 facilier 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
LCC 268 - Interview sur GraalVM avec Gilles Duboscq - partie 2
Gilles Duboscq de OracleLabs discute des multiples facettes du projet GraalVM avec Emmanuel. La partie 2 nous emè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 écouter 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 ca 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 a 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 commmunauté 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
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 ), l'espace à gauche est normalisé On peut mettre en valeur certaines portion, 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 64buts en 32 bits vis adresse relative due adresse relative, la Klass structure dans le metaspace doit être mémoire contiguë et pré allouée initialement (risque de non reallocation si mémoire libre non contiguë ) Donc le classpart et le non class part séparés dans le meta space. Klass is 32G max et contiguë et la klass part est appelé compressed class space Par défaut 1G mais configurable jusqu'à 3G. C'est virtual mémoire, juste une réservation. 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écurisée pour profiler et monitored les applis Java dans les containers avec Java Flight Recorder Cryostat peut récupérer stoquer et analyser les enregistrements flight recorder de containers Ensuite consommé par graphana 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 dependances (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 arreter le serveur Kotlin coroutine supportées 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'est cool pour développer ca 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,communité 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 déveste 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 qu 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 "Proprietaire" (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é encore Web CORS expliqué (12 Oct 2021) inclue images d'autres sites, c'est l'origine les cookies, credeitials etc etaient 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
LCC 266 - Interview sur GraalVM avec Gilles Duboscq - partie 1
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
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 sour 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 but was @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épetertoire root et de tout 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 test executés et qui peut être utilisé pour re-executer 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 plugin 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
LCC 264 - En direct de Devoxx France 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
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 AdopOpenJDK, bonjour Adoptium Eclipse Temurin runtimes pour la partie JDK Grosse test suite License oracle (que Adopt OpenJDK 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 etc) 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 2ms G1 etc Sécurité Loom Réactive programming pour mieux utiliser le,hardware Mais opposé à certains designs de la JVM (error report, débug, flight recorder) Loom résout le même problème mais en harmonie avec la JVM Api familières Next Vallalah , 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 theorique, problemes pragmatiques multi plateforme encore experimental, on prend notre temps ajoutent features dans le core lib plus lentement que Java prochains 10 ans: multiplatforme, 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 2.2 Solidification (utilisabilite, doc, corriger problèmes) Mongodb service binding RESTEasy Réactive automatiquement choisi le thread bloquant ou non bloquant Plus facile quand on vient de RESTEasy Classic Détails ici 2.1 Dev services pour keycloak SQLServer réactive a son extension Kotlin 1.5 Blog post expliquant les nouvelles modularités de quarkus platform Micronaut 3 est sorti RxJava n'est plus un dépendance transitive (choix du moteur réactive 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 metadonnes 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 pedophile avec du hash sur le téléphone et en alertant quand trop'sonr flaggues 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 ré cadrage et autres ajustement 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 qu'elles photos intéressent Apple Quid d'une puissance étrangère qui veut rajouter des photos de discidents? Apple dit on n'acceptera pas Où attaque sur le neural hash Détection de nudité et demande si l'nfznt veut voir avec alerte aux parents Ils se donnent quelques mois de retravail au final AWS a 15 ans demarre avec une region, un seul type d'instance et tout ephemère (pas de block storage) peu de feature et peu de details initialement prix a l'heure initialement qui etait 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 controles 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'elastic-search. De son coté AWS promet de faire son possible pour fournir des drivers qui resteront compatibles Elasticsearch 7.10.2 (la version à
LCC 262 - Interview Cloud de Confiance avec Quentin Adam
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és hébergées par les clouds providers americains même hors du sol américain Pour l'état, collectivités et pour 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 andromede: Thales, dassault, Orange, Bull: 135M € 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
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–2-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’ecosystè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 deviendrait 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
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–999.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 utilise 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 pratice Coût du cloud pousse a merger des microsercices dans un cadre de cloud cost driven development Cloud deviennent intéressant pour les services unique (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 micro profile, sa do so mémoire et temps de démarrage lui donne un avantage. Mais la compétition ne dors 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é que un remplacement pour JMS Kafka et réactive en combo va rendre la programmation réactive populaire Le projet Loom eliminera 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éflection et complication native. Et un binaire de test est créé plugin Gradle License Oracle Universal Permissive probablement un dérivé de Universal Permissive License 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 developeurs 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 JDG 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 70% eclipse 25 et vscode 23. 50% sont bi IDE Maven 76% gradle 38% ant 12W yah Spring Boot 58% Spring MVC 29% Jakarta ee 13% 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: JEP 306: Restore Always-Strict Floating-Point Semantics JEP 356: Enhanced Pseudo-Random Number Generators JEP 382: New macOS Rendering Pipeline JEP 391: macOS/AArch64 Port */ JEP 398: Deprecate the Applet API for Removal JEP 403: Strongly Encapsulate JDK Internals (sauf pour sun.misc.Unsafe) JEP 406: Pattern Matching for switch (Preview) JEP 407: Remove RMI Activation JEP 409: Sealed Classes JEP 410: Remove the Experimental AOT and JIT Compiler JEP 411: Deprecate the Security Manager for Removal JEP 412: Foreign Function & Memory API (Incubator) JEP 414: Vector API (Second Incubator) JEP 415: Context-Specific Deserialization Filters 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 visible 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 projetas. 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 rezctive, rest client, reactive messaging extensions supportent tous les coroutines Support d'Amazon services system manager Crafting rolling releases for a Quarkus CLI applicati
LCC 259 - Interview Software Heritage avec Roberto Di Cosmo et Charles Sabourdin
Charles Sabourdin et Audrey interviewent Roberto Di Cosmo sur le projet Software Heritage, dont l'objectif est la collecte et la préservation des logiciels en tant que patrimoine culturel. Enregistré le 22 Juin 2021 Téléchargement de l'épisode LesCastCodeurs-Episode–259.mp3 Interview Ta vie, ton oeuvre Ancien élève de la Scuola Normale Superiore de Pise, Roberto Di Cosmo a obtenu son doctorat en Informatique à l'Université de Pisa. Après avoir enseigné plusieurs années à l'Ecole Normale Supérieure de Paris, il est devenu Professeur d'Informatique à l'Université Paris Diderot, où il a été directeur adjoint pour l'Informatique dans l'école doctorale ED 386 de 2005 à 2009. Président du conseil scientifique et du conseil d'administration d'IMDEA Software, membre du comité d'orientation pour la Science Ouverte en France, il est actuellement détaché chez Inria. Il a une longue histoire de contributions à la recherche en Informatique, dans des domaines allant de la réécriture à la logique et de la programmation fonctionnelle à la programmation parallèle. Il s'intéresse maintenant aux problèmes nouveaux posés par l'essor du Logiciel Libre, et en particulier à l'analyse statique de grandes masses de code. Il a publié plus de 20 articles dans des revues internationales, et 50 articles dans des conférences internationales. En 2008, il a créé et coordonné le projet de recherche européen Mancoosi, avec un budget de 4.4Me et 10 partenaires réunis pour travailler à améliorer la qualité des systèmes logiciels à base de paquets. Suivant de près l'impact de l'Informatique sur la société, il prône depuis longtemps l'adoption du Logiciel Libre, notamment à partir de la publication de son best-seller Le Hold-Up Planétaire en 1998; plus récemment, il s'est intéressé aux questions soulevées par la problématique de la rémunération des artistes à l'ère d'Internet, avec l'ouvrage Manifeste Pour Une Création Artistique Libre Dans Un Internet Libre. Il a créé le Groupe Thématique Logiciel Libre dans le Pole de compétitivité Systematic à Paris, qui a financé plus de 40 projets de R&D depuis 2007, et il dirige depuis 2010 l'IRILL, une structure de recherche de pointe sur le Logiciel Libre. En 2015, il a été à l'origine de Software Heritage, une initiative qu'il dirige et qui vise à construire l'archive universelle de tout le code source publiquement disponible, en partenariat avec l'UNESCO. Software Heritage origine de l'initiative comment gérez-vous les problématiques de licence ? ne sauvez-vous que des codes opensource ? En pratique qu'est-ce qui est conservé ? quel type d'intégration (build, test unitaire…) avec quelle fréquence les soucis d'encodage ? les soucis d'architecture ? les soucis de licences ? sur l'infrastructure ? combien de serveur, dans combien de datacenter ? quel type de code ? quel composant utiliser/reutiliser ? un outil de recherche ? les tendances, les connaissances(bonnes pratiques, etc…) le KWC Conclusion objectifs futurs comment aider une communauté ? des outils ? 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 258 - Les mineurs de fond
Arnaud, Antonio et Emmanuel discutent des actu du développeur en cette période pré estivale. Du Spring Boot, du Hibernate, du Vert.x, du web qui tombe, du Gradle 7, des mineurs et des méthodologies autour des pull requests. Enregistré le 11 juin 2021 Téléchargement de l'épisode LesCastCodeurs-Episode–258.mp3 News Langages GraalVM 21 sur InfoQ'France Un interpréter Java en Java Plus simple a debugger Avant ils utilisaient hotspot Reste projet Java en tant que container de javas Mélanger ahead of time et classique Java Librairies Spring Boot 2.5.0 est sorti Support for Java 16 Support for Gradle 7 Enhanced Docker image building New mechanism for Datasource initialisation pour préparer R2DBC Les dépendances mises à jour (Spring data, hateoas' spring Kafka et) En gros rien de révolutionnaire, beaucoup de mise à jour et du nettoyage Hibernate a 20 ans ! Première sortie Ça ne nous rajeuni pas Vert.x 4.1 est sorti Reactive Microsoft SQLServer driver Vert.x HTTP proxy plutôt que de l'écrire soit même RxJava 3 OpenTelemetry tracing Plus conforme à OAuth2 et OIDC Kotlin 1.5 Flexibilité dans la configuration de pools (plusieurs event loops par pool, waiter cancellation, lock free impl, etc Web session stocké dans Infinispan Et plus au niveau sécurité, openapi, service proxy Infrastructure Un problème chez Fastly et l'internet tousse Fastly est un CDN hoste beaucoup d'artefact de type NPM, Maven, JS resources etc consequence est sites defacé par manque de CSS ou JS, voir HTTP pages non accessibles bug declenché par une config client => fait tomber 85% du réseau Cloud Les services d'intelligence artificielle d'AWS ne respectaient pas le non déplacement des données hors de la région par défaut Et le défaut était très bien caché. Les experts AWS n'avaient pas fait gaffe C'était légal mais en tout petit dans les conventions Différence entre télémétrie et les données en propre en général. Pas pour les iA ;) Les services impacté AWS Terms 50.3 mention CodeGuru Profiler, Lex, Polly, Rekognition, Textract, Transcribe, and Translate. 60.4 also mentions this for SageMaker. 75.3 mentions this for Fraud Detector. 76.2 mentions this for Mechanical Turk and Augment AI. Web Vers un système unique et une API commune pour les extensions dans les navigateurs Des gens de Apple (Safari), Google (Chrome), Microsoft (Edge) et Mozilla (Firefox) vont collaborer ensemble, au sein du WECG Web extensions community group Base sur le travail de safari de supporter les extensions des autres navigateurs On a vu des défis et réduction de possibilités pour contrôler la sécurité et le tracking De toutes façons tout le monde est sur Chromium ahaha Outillage Gradle 7 est sorti et Cédric nous fait un crowdcast D'ailleurs, Cédric quitte Gradle Inc après des années de bons et loyaux services Prosus achète StasckOverflow pour 1,8 milliards Prosus avait déjà des parts dans des entreprises type Codeacademy, et Udemy, dans l'EDU/tech StackOverflow commence en 2008 Migration vers SaaS d StackOverflow intéresse Prosus Jobs 50% du revenu Team collaboration tool bonne croissance C'est stackoverflow pour les équipes internes docker hub autobuild, les crypto mineurs m'ont tué. En avril, nous avons vu le nombre d'heures de construction augmenter de 2 fois notre charge habituelle et à la fin du mois, nous avions déjà désactivé ~ 10 000 comptes en raison d'abus de minage. La semaine suivante, nous avons eu environ 2 200 mineurs supplémentaires. Il faut contacter Docker pour les projets OSS de bonne volonté qui ont besoin de ce service Méthodologies Le temps moyen de PR entre Stripe et Mozilla Des jours à attendre le feedback vs 10 minutes C'est un débat assez fondamental je trouve. Comment organiser les équipes pour que les PR soient vues comme la chose importante. Plus que « le code ». Différence Service vs product Loi, société et organisation Un article de rappel sur la copie privée Copie privée basse sur les cassettes et VHS. Ensuite le stockage numérique explose 270 millions d'euros en France en 2017 Une commission administrative fixe les règles. Composée. de 6 usagers, 6 vendeurs de stockage, 12 ayant droits et un président au droit de vote et pro ayant droit. Rapport de force clair Ils essaye de construire la vache à lait: prix basé sur la copie licite ou pas (cassé en 2008) ensuite argument de compression pour garder le barème haut En théorie que pour les particuliers et procédure de remboursement pour les pros. Mais difficile à appliquer donc quasi jamais fait. 25% des gains financent des festivals et manifestations culturelles : instrument d'influence des élus locaux et pas si locaux Efforts pour taper sur tous les disques durs nus, faire entrer dans le champ le stream ripping Et maintenant la copie privée sur la vente d'occasion. La grande classe. Risque pour l'économie solidaire qui sont sur des populations fragiles Le sénat veut favoriser l'écologie de la seconde main et serait pour l'exclusion de la taxe dans ce cas là. Les smartphones c'est 70% de leurs re
LCC 257 - Interview Java 16 avec José Paumard et Henri Tremblay - partie 2
José (maintenant Java Advocate chez Oracle - le cachotier) et Henri échangent avec Emmanuel sur la sortie de Java 16. Cette deuxième partie voit l'équipe discuter de la propriété illegal access (JEP 396), de l'API vectorielle, de la foreign linker API et d'autres choses. Enregistré le 8 avril 2021 Téléchargement de l'épisode LesCastCodeurs-Episode–257.mp3 Interview Ta vie, ton oeuvre José Paumard Henri Tremblay Illegal access pass en deny par défaut (Henry) JEP 396 (encapsulation force des parties internes du JDK). FEATURE Make Lombok compatible with JDK 16 · Issue #2681 · rzwitserloot/lombok · GitHub API vecteur Les Vector sont de retour?! Discussion ud parallelisme au niveau CPU — Simple Instruction Multiple Data Foreign Linker API Pour projet Panama Lier une méthode native avec du code Java Du coup on a aussi un foreign memory access API ? Project panama and jextract – Inside.java Jextract genera le code Java à partir du fichier de declaration C. JVM sur d'autres plateformes Alpine Linux et Musl AArch64 (ARM) sous Windows ZGC Move ZGC thread-stack processing from safepoints to a concurrent phase. Autres Mercurial -> git Return unused HotSpot class-metadata (i.e., metaspace) memory to the operating system more promptly, reduce metaspace footprint, and simplify the metaspace code in order to reduce maintenance costs. Bonus Java 15 Shenandoah Text blocks Plus de Nashorn Une discussion autour de GraalVM 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 256 - jTerrasse
Antonio et Emmanuel discutent entre autre de JavaDoc, Quarkus, Crypto dans le CI, bootstrap 5, Grafana, cloud de confiance sans oublier les crowdcasts sur Cypress et sur hack.commit.push du 29 mai. Enregistré le 21 mai 2021 Téléchargement de l'épisode LesCastCodeurs-Episode–256.mp3 News Langages Un JEP pour améliorer la JavaDoc On va pouvoir référencer par exemple des morceaux de code dans un autre fichier, dans un test, et l'intégrer dans la JavaDoc d'une méthode, d'une classe. Ca permettra d'avoir de la doc vraiment à jour au niveau des bouts de code, vu que ce sera toujours le vrai code qui tourne qui sera inséré dans la JavaDoc. Il pourra y avoir également de la coloration syntaxique de définir des régions qui doivent être surlignées pour être bien visibles Il sera possible de modifier certaines parties d'un snippet de code, par exemple pour cacher une chaine de caractère de test dont on se moque de la valeur quand on explique ce bout de code Possibilité de rajouter des liens hypertextes sur certains bouts de code, pour pointer par exemple vers la JavaDoc d'une méthode utilisée dans ce bout de code Pourvu qu'ils reprennent le plus possible la syntaxe asciidoctor qui a déjà résolu ce problème Asciidoclet Discussion sur le raisons du besoin derrière Loom Article qui reste d.un premier niveau, il faut creuser,les bénéfices réels IO et synchro bloque un thread. Limite scalabilité. Le code asynchrone est plus dur à comprendre. Virtual threads don't bien pour des taches qui passent beaucoup de temps à attendre Les API IO blocantes parkent le virtual thread quand elles sont en attente Un poller (boucle d'evenement) regarde les IO et leur état et unpark les virtualthread correspondant Mechanisme similaire aux frameworks non blocs to de type vert.x mais avec une API bloxante Librairies Quarkus 2.0 alpha 1, 2 et 3 sont sortis Quarkus 2 parce que vert.x 4 et MicroProfile 4, pas de "gros" breaking changes mais quelques uns surtout pour les extensions Continuous Testing: dans la console, on voit les tests qui plantent. Et quand on fait un code change, uniquement les tests qui sont impactés sont joués (flow analysis). Lance aussi dans un container dédié les dépendances (e.g. une base de donnée pour les tests utilisant Hibernate). LE container pour les tests en continu est différent de celui pour le quarkus:dev qui tourner (pas de pollution). JDK 11 minimum Micronaut 2.5 est sorti support for @java 16 and @graalvm 21.1 on Micronaut Launch, huge improvements to Micronaut Data from @DenisStepanov, improved @OracleCloud integration and many other small improvements Infrastructure Les cryptomineurs tuent les CI gratuite Les mineurs de crypto monnaies abusent des services de CI qui offre des capacités de build gratuites Une des nouvelles astuces c'est d'utiliser les outils comme Pupetteer pour automatiser l'utilisation d'un navigateur web, pour miner de la crypto monnaie dans le navigateur qui tourne en headless sur la machine de CI A la grande époque de OpenShift online et OpenShift.io, on a beaucoup appris sur le detection des Bitcoin miners :) on a eu le soucis sur Codeship (la CI SaaS de CloudBees). Ils ont passé un max de temps à virer et proteger les builds. J'ai vu que GitHub avait eu aussi le soucis Les 19 étapes facile pour écrire un dockerfile En vérifiant l'ordre de ses commandes, en limitant le scope de Copy, d'aligner les RUN d'installation de package, d'utiliser des images officielles, voire de se créer ses images de base, d'utiliser des tags spécifiques pour des images plus reproductibles, effacer le cache du package manager, de builder dans une image offrant un environnement cohérent, de récupérer ses dépendance dans une étape à part, de faire du multi-stage build… Ou d'utiliser les Cloud Native Buildpacks! (sur lesquels Joe bosse) Article qui nous explique la complexité et les trade off impossibles. Et donc que buildpack c'est indispensable Comparaison Apache Kafka et Apache Pulsar pulsar a des brokers sans etat et deriere il y a des bookkeepers (qui stockent les data). Cela permet plus de flexiblités pour augmenter ou descendre le nbombre de brokers. mais avec plus de "moving parts" et avec un hop de reseau supplémentaire. Mais l'architecture est plus flexible notamment pour Kubernetes Le stockage étagé et la geo replication est plus facile dans Pulsar (par default). Stockage etageé c'est de stocker l'info dans un S3 quand ellee st vielle par example. Pulsar est multitenant par design. Pulsar accepte des gros messages et sit les fragmenter au besoin plus grosse communaute sur Kafka mais il y a des composants non open source (Confluent). Cloud Red Hat OpenShift Streams for Apache Kafka : un service cloud de Kafkas managé C'est ce sur quoi emmanuel a bossé ses 9 derniers mois Essayer le Managed Kafka de red hat Red Hat OpenShift Streams for Apache Kafka: un cloud service de Kafka managés https://twitter.com/emmanuelbernard/status/1387686420903563264 Super intégration avec Quarkus et utilise Quarkus a l'inté
LCC 255 - Interview Java 16 avec José Paumard et Henry Tremblai - partie 1
José (maintenant Java Advocate chez Oracle – le cachotier) et Henri échangent avec Emmanuel sur la sortie de Java 16. Cette première partie couvre l'introduction, les records, le pattern matching, les sealed class, les hidden classes et le créateur d'installeur jpackage. La suite au prochain numéro. Enregistré le 8 avril 2021 Téléchargement de l'épisode LesCastCodeurs-Episode–255.mp3 Interview Ta vie, ton oeuvre José Paumard Henri Tremblay Java et sa cadence de release Retour général sur la cadence de release: bien ou mal ? Java 16 JDK 16 JDK 16 Arrived : Java 16 Released with New Features | TechGeekNext >> Records Pattern matching instanceof Autres pattern patching qui sont arrivés? Sealed classes (preview) C'est quoi ? Ça sert à quoi ? Et les hidden classes ? Un petit détour par le mégamorphisme jpackage Construire des installeurs d'applications Java 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 254 - Fission acquisition
Arnaud et Emmanuel discutent la sortie de Java 16, diverses distributions d'OpenJDK, des outils comme JHipster, JReleaser, la décision de la court suprême dans le procès des API Java entre Google et Oracle et le refactoring de Michael Dell avec la cession de VMWare. Enregistré le 16 avril 2021 Téléchargement de l'épisode LesCastCodeurs-Episode–254.mp3 News Langages Java 16 est sorti La version longue des release notes Les fonctionnalités préférées des Java Champion Lombok en conflit avec openJDK sur –add-open La plateforme Java moderne de 2021, selon James Ward James parle de Java la plateforme, donc y compris ses langages alternatifs, en particulier Kotlin et Scala dont il est fan Java a l'avantage d'avoir un outillage moderne, aussi bien niveau IDE (Intellij, VS code…) que des librairies de tests (Java, Testcontainers…) Pour les frameworks les plus utilisés, évidemment Spring vient en tête, mais il mentionne aussi Micronaut (avec l'injection de dépendance à la compilation) et Quarkus (avec son focus sur l'expérience développeur) James fait la part belle à l'approche "reactive", en mentionnant par exemple les drivers de base de données R2DBC Pour continuer sur le thème réactif, il mentionne aussi le reactive streaming (au dessus de Kafka par exemple), mais il parle aussi de CQRS et Event Sourcing, mais aussi les CRDTs Niveau containeurisation, il cite les initiatives comme Jib, les cloud native Buildpacks, ou les images Distroless, pour faciliter et simplifier le packaging d'applis Java pour les environnements à base de conteneurs Côté "serverless", James évoque GraalVM, pour transformer les applis Java en native, pour gagner en temps de premier chargement (le cold start, fréquent dans les environnements serverless) (Il aurait pu mentionner les approches comme Micronaut avec l'injection de dépendance à la compilation qui éviter une bonne partie du coût de démarrage du framework sous-jacent et diminue donc le cold start) 53 librairies Java pour résoudre vos problèmes Max Andersen avait demandé sur Twitter de donner des librairies Java utiles et pratiques qui résolvaient des problèmes concrets, Emmanuel a compilé la liste avec des librairies pour parser / générer du code Java, des structures de données, de conversion de format, pour parser des formats de données, pour le web aussi bien en tant que serveur que pour faire des requêtes, pour les tests de toutes sortes La migration d'AdoptOpenJDK vers Eclipse Adoptium a commencé Microsoft annonce sa distribution d'AdoptOpenJDK LTS gratuite et "sans coût" Support au sens patch jusqu'en 2024 de 11 Utilisent en interne pour leurs clients et pour eux Ont aussi une version java 16 arm en preview utilise les tests adoptium ça peut devier de OpenDJK en terme de patchs Eclipse Adoptium pour Java 8 docker image bientot Azuul vient de perdre un client Librairies Spring-Boot client app to access an Auth0 protected service (JWT). JHipster release v7.0.0 Outils Andrés Almiray annonce la release de… JReleaser, un projet qui permet de facilement livrer un projet Java sur des plateformes comme Homebrew, Snapcraft, Scoop, ou des registries de conteneurs. Cloud AWS announce OpenSearch, une communauté qui forke ElasticSearch et Kibana OpenSearch (derived from Elasticsearch 7.10.2) and OpenSearch Dashboards (derived from Kibana 7.10.2) ASL 2.0 marque OpenSearch avec usage permissif Amazon OpenSearch Service Red Hat, SAP, Capital One, and Logz.io reutilise la marque OpenSearch que Amazon avait avant pour autre chose Infrastructure Pourquoi tous mes serveurs ont un fichier vide de 8 Go? rien de pire qu'un linux ou macOS avec zero espace disque, ca part en sucette donc 8Go pour se donner du temps ca touche mon égo de developpeur cette solution :) Docker Desktop for Apple Silicon en preview ils offrent une alternative au framework de virt d'apple qui tourne sur qemu utilise encore rosetta 2 vu qu'il y a des libs qui utilisent encore intel fait tourner les images ARM, et sinon ajouter la platform amd64 mais les images amd crashent QEMU parfois pour qemu: "ping from inside a container to the Internet does not work as expected." LOL Levée de fond de 23 millions de dollar pour Docker Serie B, ahahah 2ème incendie chez OVH Dégagement de fumée de 300 batteries de 25 kg Sgb1 et 3 coupés temporairement Loi, société et organisation Google chrome révèle le type de données collectées attachées à l'utilisateur. ( + Google Chrome 90 ) Beaucoup plus important que Firefox ou safari. Google a mis longtemps avant de donner ces infos. après c'est la course au nombre et beaucoup sont poussées par des fonctionnalités mais cela montre l'approche philosophique différente. chrome acte comme un super cookie. j'ai mis edge par defaut sur l'ordi de mon père Fin du procès Oracle vs Google les APIs ne sont pas copyrightable Pas exactement. Ils disent que dans le cas de Google oracle, c'est ok parce que les api sont devenues des choses familières aux développeurs et donc que dans ce cas c'est ok. Il ne se position
LCC 253 - Interview GraphQL avec Stan Chollet et Jean-François James - partie 2
Stan Chollet et Jean-François James discutent avec Emmanuel de GraphQL. Cette seconde partie explique GraphQL concrètement pour le développeur, les différents moteurs et clients et le futur de GraphQL. Enregistré le 25 février 2021 Téléchargement de l’épisode LesCastCodeurs-Episode–253.mp3 Interview Ta vie, ton oeuvre Stan Chollet Tartifflette.io Jean-François James Microprofile GraphQL En pratique pour le développeur Je veux faire du GraphQL, maintenant quoi ? Quels frameworks choisir? Lien JS - mon language (e.g. Java) Comment définir son schéma Des outils qui aident à la génération des entités? Erreurs dans les requêtes Comment écrire ses requêtes, Qu'est-ce qui est possible Comment réduire les requêtes possibles générer 23 jointures? De pas afficher certaines données à l'utilisateur Comment faire des agrégations de plusieurs sources ? Modification des données Faire évoluer ses APIs Et quid des changements incompatibles? Pagination AppoloGraphQL GraphiQL GraphQL Playground Postman Sous le capot Qui définit GraphQL? Qui implémente? Les clients GraphQL Les Serveurs GraphQL Les GraphQL <-> requête dans la base de données GraphQL Futur GraphQL federation Lee Byron qui part de Facebook, moins d’activités La spec GraphQL 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 252 - Interview GraphQL avec Stan Chollet et Jean-François James - partie 1
Stan Chollet et Jean-François James discutent avec Emmanuel de GraphQL. Cette première partie explique les concepts et les points de base de GraphQL. Enregistré le 25 février 2021 Téléchargement de l'épisode LesCastCodeurs-Episode–252.mp3 Interview Ta vie, ton oeuvre Stan Chollet Tartifflette.io Jean-François James Microprofile GraphQL GraphQL en deux mots La techno en concepts D'où vient GraphQL? On avait WS-* Ensuite on a eu REST Quels sont les problèmes principaux que GraphQL essaye de résoudre? Quand rester sur REST vs aller sur GraphQL? Les concepts: * Schéma * Requêtes * version Toujours JSON ? Une requête pour plusieurs sources Appllo GraphQL GraphQL Federation Domain Graph Service 45:07 En pratique pour le développeur Je veux faire du GraphQL, maintenant quoi ? Quels frameworks choisir? Lien JS - mon language (e.g. Java) Comment définir son schéma Des outils qui aident à la génération des entités? Erreurs dans les requêtes Comment écrire ses requêtes, Qu'est-ce qui est possible Comment réduire les requêtes possibles générer 23 jointures? De pas afficher certaines données à l'utilisateur Comment faire des agrégations de plusieurs sources ? Modification des données Faire évoluer ses APIs Et quid des changements incompatibles? Pagination AppoloGraphQL GraphiQL GraphQL Playground Postman Sous le capot Qui définit GraphQL? Qui implémente? Les clients GraphQL Les Serveurs GraphQL Les GraphQL requête dans la base de données GraphQL Futur GraphQL federation Lee Byron qui part de Facebook, moins d'activités La spec GraphQL 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 251 - Trié dans le désordre
Dans cet épisode désordonné mais complet, Antonio, Guillaume et Emmanuel parlent de JVM sur Kubernetes, des datacenters OVH, de Spring Native, de Flutter, de Saga, d'Open Source et de salaire. Enregistré le 12 mars 2021 Téléchargement de l'épisode LesCastCodeurs-Episode–251.mp3 News Infrastructure Un data center d'OVH en feu Strasbourg data center entierement détruit recommande d'activer les protocoles de disaster recovery impacte aussi d'autres data centers : SBG1, SBG3 et SBG4 (electricite coupée et une partie des salles serveurs) Autre article couvrant l'évènement 3,5 millions de sites down, les backups aussi? 18% des adresses IP attribuées à OVH remedarrage (sauf SBG2) la semaine prochaine touche la partie hosted private cloud quelques jours avant annonce de mise en bourse Améliorer le temps de démarrage des JVMs sur Kubernetes JIT etc, temps de demarrage relativement lent rajouter des pods et faire deu deployment graduel (3x coût) script de chauffe avec le readiness probe utilisant initialDelaySeconds mais pas d'amelioration massive (rejoue les URLs de prod) et ralentit l'auto scaling changer les heuristiques de la JVM : 2x CPU request et limit puis 3x => probleme disaparait, CPU throttling ; mais coûteux et plus difficile de positionner les pods utiliser des pods "burstable", limit > requests Bon articles pour ceux qui sont en phase d'apprentissage de Jave et Kubernetes. Attention, leur modèle peut faire crasher un noeud en cas de probleme et de reboot de pods excessifs puisque la charge théorique nécessaire est de 3x. Mais ce n'est probablement pas pire que leur problème initial Front Sortie de Flutter 2.0 poste plus technique niveau production pour le support du Web Sound Null Safety qui permet d'éviter les null pointer exception le support du desktop est aussi en mode stable de nouvelles widgets Meilleur support dans IntelliJ et Visual Studio Code Filio une app exemple pour etre progressive et belle sur tous les supports Fultter fix pour faire evoluer le code "500,000 Flutter developers across a growing number of platforms" wow Librairies Hibernate Reactive 1.0 CR arrive Spring Native est en béta Micronaut 2.4 est sorti Ajout et support des annotations jakarta.inject comme alternative à javax.inject Ajout d'annotations @NonNull et @Nullable propres à Micronaut, car différents outils et frameworks proposent aussi des annotations nullables qui rentrent parfois en conflit les unes avec les autres Nouvelle annotation @InterceptorBean pour appliquer des interceptors à des beans, qui remplacent les annotations AOP existantes Support plus fin des erreurs de réponse, avec des content type plus fins Diverses améliorations de Micronaut Data, dont par exemple le support des records de Java 14+ Support de Oracle Coherence CE pour Micronaut Data Outillage Gradle explique l'impact de la disparition de JCenter sur les builds Gradle telechargement des dependences et des plugins publications vers bintray beaucoup d'exemples utilisent jcenter + Gradle, donc verifier vos fichiers de build => jcenter() déprécié reco: enlever jcentral du build et verifier que ca continue de tourner troubleshoot les dépendances qui ne sont que sur jcentral spécialement à risque Android Gradle Entreprise dans le build scan on sait d'où vient chaque dépendance les plugins peuvent ajouter des repository à vos projets dependance encore sur jcenger uniquement (attendre le maintainer, migrer vers une autre librairie, copier le jar attention au confusions de dependances et collision de namespace risque potentiel activation de verification des dependance ( true false) Architecture InfoQ article sur le pattern Saga, le outbox pattern et change data capture outbox pattern, evite l'écriture double DB/queue. Il ecoute les changements de la base de donnée dans une table dédiée qui est transformée en message dans une queue apr le composant de change data capture (modifié) cela evite tout besoin de XA ou autre synhcronization distribuée Saga, transaction métier large. utilise des compensations pour anuler partiellement ou totalement la transaction 2 approches choereographie: passage des messages d'un service a l'autre orchestration: un swervice coordonne les autres et fait les appels dual write: inconsistence si un ou l'autre des envois (DB tx ou message) echoue Article ensuite decrit comment implementer une saga entre 4 services via the outbox pattern en utilisant Kafka et Debezium Thoth un framework event sourcing de la Maif Méthodologies L'état des lieux du Dev Java par jaxcenter 49% de Dev java et le reste team lead architect et consultants 69% Java 8, JavaScript at 40%, Java 11 at 36% (note that they were allowed to select more than one programming language of choice). 16% Java 12 or newer, and 15% Java 7 or older. 66% convertissent ou utilisent microservices , 13% ne l'envisagent pas, 70% moins de 10 microservices App servers 6h% tomcat 19%wildfly 18 weblogic 15 jetty 14 web sphere Spring boot 62% (83 l'année dernière) drop wizard 8% Quarkus 6%
LCC 250 - Spécial Loi Société et Organisations avec Agnès Crepet et Tariq Krim, 2ème partie
L'actualité du mois de janvier était trop tentante pour passer à côté, voici donc un nouvel épisode spécial loi, société et organisation ! Cette fois Agnès, Audrey et Emmanuel ont demandé à Tariq Krim de les rejoindre pour commenter les conséquences des nouvelles CGU de WhatsApp et le départ en masse de ses utilisateurs et la déplateformisation de Donald Trump. Et comme il y avait beaucoup à dire sur le sujet, on vous en a fait deux épisodes. Enregistré le 5 Février 2021 Téléchargement de l'épisode LesCastCodeurs-Episode–250.mp3 Invité de l'épisode Twitter Tariq Krim Intros et premiers sujets en partie 1 1ère partie de l'épisode La déplateformisation de Trump et des comptes affiliés à QAnon Le compte personnel de Trump - 80 millions de followers sur Twitter - bannie des réseaux sociaux suite à la prise d'assault du Capitol Le post officiel de Twitter Bannir Donald Trump de Twitter crée un précédent « dangereux », affirme son patron Le thread de Jack Dorsey, le CEO de Twitter Parler retirée des stores Google et Apple, et son infra supprimée de AWS. Suite aux évènements au Capitole, Trump ainsi que 70000 comptes affiliés à QAnon ont vu leur compte supprimés de Twitter A noter que Twitter a seulement agi à la fin du vote du congrès pour activer leur procedure. Trump a bien essayé de se servir du compte officiel de la présidence américaine pour dénoncer la suppression de son compte mais ses tweets ont été dépubliés au motif qu'utiliser un autre compte pour éviter la suspension enfreint les règles de Twitter S'en est suivi un effet domino qui a entrainé la suppression des comptes de Donald Trump et d'adhérents à QAnon sur Facebook, Instagram, Youtube, Snapchat, Twitch, Spotify, Shopify (site qui permettait la vente de merchandising) et d'autres. on parle de déplateformisation à cause de cet effet domino mais aussi parce qu'on a assisté à une deuxième étape : Trump s'est ensuite rapidement replié sur Parler, une application utilisée par l'alt right mais l'application a été retirée des stores par Google et Apple. Son infra supprimée : c'est en effet Amazon Web Service qui a décidé de ne plus héberger le service sur sa plateforme. Ce serait peut-être lié d'ailleurs à une pétition d'employés d'Amazon, qui aurait pu influencer une telle décision. Pour Amazon les outils de modérations mis en place par Parler ne sont pas suffisamment efficaces. Cela pose la question de savoir si les services de clouds ont un droit de regard sur la façon dont une application est gérée? Parler est hébergé par des russes. L'application a été financé par Rebekah Mercer qui est connue pour ses contributions aux organisations conservatrices et dont la famille a par ailleurs financé Cambridge Analytica. clin d'oeil : Le fondateur de Piratebay ironisait sur le sort de Parler " "Pirate Bay, le site Web le plus censuré au monde, créé par des kids, géré par des personnes ayant des problèmes d'alcool, de drogue et d'argent, est toujours en activité après presque 2 décennies. Parler et Gab, etc. ont tout l'argent mais aucune compétence ni état d'esprit. Gênant." La désinformation en chute dans les réseaux sociaux après la déplateformatisation de Trump Les expresssions et tags utilisés par les supporters de Trump ont baissés de 95% après le bannissement. (#FightforTrump, #HoldTheLine, March from Trump…) D'après les chercheurs en désinformation il y a très peu de compte à la source (une vingtaine de comptes conservateurs dont celui de Trump) mais ceux ci sont qualifiés de "superspreader" car ils sont massivement repartagés, quelque soit le sujet. Les politiques du monde entier déstabilisés par la déplateformation de Trump et les questions qu'elle soulève GAFAM Des salariés de Google créent un syndicat après des mois de tensions internes 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 249 - Édition tu perds tes amis
Emmanuel Antonio et Guillaume discutent de Java 16, de GraalVM, de micronaut, de Quarkus, de licence Elastic, de BinTray qui s'en va et d'attaque de chaine de fournisseurs. Et merci à José Paumard et Benoit Sautel pour leur crowdcast. Enregistré le 12 février 2021 Téléchargement de l'épisode LesCastCodeurs-Episode–249.mp3 News Langages Optimiser le MD5 dans la JVM dans la tête d'une optimisation du JDK optimisation proposée amène des surcharges de contentions (thread local) donc exploration de l'alternative difficulté des codes intrinseques (c'est à dire quand un pattern est détecté, le code est hardcodé par platforme. Donc tout changement du code qui sort du pattern veut dire pas mal de taf) Conversion hexadecimal en Java 17 Crowdcast de José sur Java 16 et article de Loic sur le sujet Java 16 Socket channels (Unix domain) Court circuit de la stack tcp, pas de file descriptor de mémoire Api vectorielle avec optimisation par plateforme Foreign linker api pour panama Et le support appel natif Support alpine (musl) et aarch64 pour Windows Record et pattern matching instanceof deviennent standard Illegal access passe en deny par défaut. Ça pue ;) Java sur Truffle dans GraalVM le GC reste sur la JVM hote qui peut etre hotspot ou SubstrateVM Dans le cas de SubstrateVM, ça veut dire que Java peut etre interprété dans ce mode ahead of time compiled (donc in JIT est embarqué). Pour faire tourner certains morceaux de Java "dynamique" ça peut valoir le coup Sinon c'est la vision de GraalVM de la VM universelle donc supporter Java "comme les autres langages" fait partie du puzzle Mais bon c'est dur de comprendre leur strategie Crowdcast JavaScript GraalVM de Benoit Sautel L'API Polyglot Appeler du Javascript depuis la JVM Migrer depuis Nashorn Démonstration et benchmark GraalJS avec Maven JEP 243 Java-Level JVM Compiler Interface Interview d'un responsable de GraalVM sur Nashorn vs GraalVM JBang - comment écrire des scripts en Java pourquoi les gens écrivent des scripts dans d'autre langages que Java un seul fichier, pas de structure complexe y compris dans les dependances un demarrage juste en lançant le ficher crée un environnement pour l'IDE Element worklet, rendre JavaScript preemptif Proposition de creation d'élément de code JavaScript qui peut tourner hors du thread principal by design. JS peux rendre la main mais c'est non preemptif (yield, promesses etc) et uniquement à un endroit précis Donc création de Element Worklet (un comme un runnable en Java) qui tourne dans un thread séparé, avec un message channel pour communiquer avec le reste Travaille sur un shadow dom par contre rien n'est détaillé sur le scheduler et la priorisation Librairies Driver JDBC Oracle sur Maven Central! Drivers support for Virtual Threads Extension reactives GraalVM native image (mais encore des trucs a amelioerer (allow incomplete classpath) Micronaut 2.3 support de JMS résolution de la Locale améliorations au système d'introspection bannière personnalisable Fondation pour Grails Idée des fondations était venu ensemble avec Micronaut Mais voulait apprendre de l'un avant de lancer l'autre Embrasse semver Le technical commutee va décider de la roadmap de ce que j'ai compris Intégration initiale de micronaut dans Grails 4 Plan: TX mongo dans GORM. Groovy server pages plus modulaire, native web socket, meilleure intégration Kafka Plan grails 5: Groovy 3, SB 2.4, gradle 6 et Java 15 Quarkus 1.11 RESTEasy Reactive Annotation scanning, metamodel generation au build, base sur vert.x route Dev UI les frameworks amènent des tâches de dev (config, list des bean CDI, database schema migration etc) Massive performance without headaches Infrastructure Les rebondissements d'Elastic vs AWS et du changement de licence Clarification d'Elastic "si vous vendez Elasticsearch directement en tant que service, vous serez impacté" entre les annonces et la licence, il y a une difference est-ce que tout competiteur sérieux à Elastic amènera un changement de licence? est-ce que Lucene est le prochain sur la liste? reflechissent à une license qui ouvre le code apres 3 à 5 ans BSL (Business Solftware License qui se transforme en ASL apres quelques années, et qui a une clause restrictive avant) La distribution Elastic d'Elasticsearch avait déjà un mix de ASL et de logiciels sous license proprietaire mais "source ouverte" AWS forks Elasticsearch Montrent les contribs ~10 sur Elasticsearch et annonce 250 contributions sur Lucene Les clients Elasticsearch resteront ASL 2.0 mais pas le client Java haut niveau qui a des dependence's sur les classes serveur. Un nouveau client devrait arriver. Retour de l'ex CTO de Chef et sa position "pro" AWS et contre Elastic contre point de la position des gens du Message a caractere informatif 4 valeurs de l'OSS: The freedom to run the program as you wish, for any purpose The freedom to study how the program works, and change it so it does your computing as you wish The freedom to redistribute copies so you can help others The freed
LCC 248 - Spécial Loi Société et Organisations avec Agnès Crepet et Tariq Krim - partie 1
L'actualité du mois de janvier était trop tentante pour passer à côté, voici donc un nouvel épisode spécial loi, société et organisations ! Cette fois Agnès, Audrey et Emmanuel ont demandé à Tariq Krim de les rejoindre pour commenter les conséquences des nouvelles CGU de WhatsApp et le départ en masse de ses utilisateurs et la déplateformisation de Donald Trump. Et comme il y avait beaucoup à dire sur le sujet, on vous en a fait deux épisodes. Enregistré le 5 Février 2021 Téléchargement de l'épisode LesCastCodeurs-Episode–248.mp3 Invité de l'épisode Twitter Tariq Krim Protection des données WhatsApp met à jour sa politique de confidentialité et provoque une immense vague de départ des utilisateurs vers Signal et Telegram les nouvelles données partagées sont celles ci : « nous partagerons certaines de vos informations de compte avec Facebook et la famille de sociétés Facebook, telles que le numéro de téléphone que vous avez vérifié lorsque vous vous êtes inscrit sur WhatsApp, ainsi que la dernière fois que vous avez utilisé notre service " elles ne sont pas optionnelles Les européens ne sont pas concernés(mais les britanniques si puisqu'ils relèvent maintenant des US) Avec plus d'un quart des utilisateurs, l'Inde demande à WhatsApp d'annuler ses nouvelles conditions faisant le constat que les citoyens de l'UE sont traités différement en vertu du RGPD, le ministère indien des technologies de l'information a demandé à whatsapp de retirer ces propositions de changement au motif qu'« Un tel traitement différencié est préjudiciable aux intérêts des utilisateurs indiens et perçu comme un grave problème par le gouvernement ». Par quoi remplacer WhatsApp ? Trois alternatives françaises et gratuites à WhatsApp qui protègent vos données personnelles Option la plus simple : Signal points forts : open source gérée par une fondation à but non lucrative (signal.org) financée par des dons son protocole de chiffrement a été validé par l'Agence nationale de la sécurité des systèmes d'information (ANSSI) la loi de Metcalfe (l'effet de réseau) joue en sa faveur pour le moment point faible : hébergé aux US donc sous le Cloud Act Dans les applications françaises : Olvid points forts : pas d'accès au carnet d'adresse, l'ajout de nouveaux contacts se fait manuellement a reçu l'approbation de l'ANSSI Citadel team point faible : développé par Thales Skred : points forts : appels audios et vidéos inclus dans la version gratuite a reçu l'approbation de l'Agence nationale de la sécurité des systèmes d'information (ANSSI). En parallèle de cette affaire,WhatsApp est menacé par une amende record en Europe concernant ses transferts de données vers Facebook pas lié à la polémique actuelle mais au modification des conditions d'utilisation de WhatsApp en 2016 par lesquelles Facebook s'est s'autorisée le partage de certaines données que des internautes avaient pu préserve jusqu'à lors. c'est la CNIL irlandaise qui s'est saisie du sujet et la sanction financière pourrait aller jusqu'à 30 voire 50 millions d'euros pour avoir enfreint les exigences de transparence imposées par le RGPD. (Plus exactement, c'est l'opacité sur la manière dont il partage des informations avec Facebook, sa maison-mère, qui est en cause.) A Game Designer's Analysis Of QAnon A suivre Dans la deuxième partie de l'épisode on parlera de la déplateformisation de Donald Trump 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 247 - Cette fois-ci nous n'avons pas perdu Guillaume!
Dans ce premier épisode news de l'année Guillaume est de retour et sans accrocs (enfin presque). Accompagné d'Arnaud ils parcourent les nouvelles techniques de fin 2020, début 2021. Ils nous parlent de Java (Hashcode, Loom, records), des news Spring (SpringBoot, SpringCloud, JHipster), du changement de license chez Elastic, de CSS (Bootstrap, Tailwind.CSS), de Gradle et d'autres sujets Sécurité, Architecture et Méthodologie. Enregistré le 15 Janvier 2021 Téléchargement de l'épisode LesCastCodeurs-Episode–247.mp3 News Langages Comment les hashcodes sont générés en Java. Et non ce ne sont pas les adresses mémoires. Le code utilises un modèle sans contention et très rapide. Quasi comme celui qui ramène une valeur constante. Utiliser les Java Records avec Jackson (et Spring Boot) (Mais pas pour la persistence avec JPA/Hibernate) Project Loom & Jetty: 1000000 Virtual Thread oui mais pas avec une stack de taille décente. Et ça fait de la poubelle à collecter. loom ne remplace pas l'usage des thread pool pour la contention de resources autre que les threads (DB connection, mémoire, CPU). Les VirtualThreads ne sont pas encore optimisées pour les ThreadLocals. Donc VirtualThread pas forcément l'unité de montée en charge naturelle. (Une partie 3 de se blog est prévue dans quelques semaines) Librairies JHipster 7.0.0 avec pas mal d'incompatibilités. Spring Cloud Contract 3.0: Incremental Test Generation for Maven, Resolves Credentials from settings.xml, Rewrite Groovy to Java, Allow to Extend Contract & Stubs, New [Custom] Mode of Test Generation, Experimental GRPC Support, GraphQL Support, Stub Runner Boot Thin JAR, Messaging Polyglot Support, Messaging with Existing Middleware, Gradle Plugin rewrite. Spring Cloud 2020.0.0, enfin la version compatible avec Spring Boot 2.4.x. Nouveau versioning comme annoncé il y a quelques mois.. Attention à la fonctionnalité de bootstrap qui est désactivée par défaut. Attention si vous utilisez Spring Cloud GCP le projet a déménagé et et n'est plus dans le release train TOML 1.0 est dispo et TOML Schema en route. Infrastructure Elastic suit MongoDB et remplace la license ASF 2.0 pour Elasticsearch et Kibana au profit d'un dual licensing Elastic License + SSPL. Tout comme mongo le but est de se protéger des AWS et consorts en empêchant le hosting sans recontribution vers la « communauté » Web Bootstrap 5.0.0 passe en beta 1. Le CSS version Bootstrap (approche composants) vs le CSS version Tailwind.CSS (approche boite à outils). Outillage Gradle 6.8 est la dernière release avant la version 7. La version 6.8 apporte d'importantes améliorations des performances dans la version Kotlin, des améliorations sur les caches (notamment les plugins checkstyle, pmd, codenarc, jacoco ). Améliorations sur la feature toolchain, les composites builds et la gestion des dépendances … Le problème avec Gradle article de Cédric Champeau, dev Gradle en réponse à Le problème avec Gradle de Bruce Eckel. On y parle des principes de bases (taches et dépendances), configuration vs programmation du build, Groovy, DSL, de faire la même chose de 36 manières, de magie et de cycle de vie Architecture un retour intéressant sur Amazon qui est passé de Sun à Linux / x86 pendant la bulle de 2000 au lieu de rester dans son modèle existant. Ça explique un choix intéressant : en cas de crise, soit tu pousses à te réinventer avec le risque d'échouer et de couler rapidement, soit tu optimises ce que tu as avec le risque d'être balayé « a petit feu ». Amazon n'avait plus que quelques trimestres devant eux et ont arrêté les features pendant la transition. Méthodologies It's pull from production, not push to production avec CDN sur le front et serverless sur le back, la prod est juste un changement de DNS. Toutes les branches peuvent être en prod. main n'est pas la prod mais l'accord des fonctionnalités partagées. Comment prendre des notes … pour ne pas faire un cimetière de notes mais réellement un référentiel personnel de connaissances. Sécurité Attaque SolarWinds. Une attaque etatique hack plusieurs agences americaines, microsoft et 18000 autres entités. Des articles commencent à cibler Jetbrains Teamcity comme vecteur d'attaque utilisé pour infester SolarWinds mais JetBrains s'en défend (article 1, article 2) Conférences Web Stories le 5/2 en ligne https://webstoriesconf.com/ Le Devfest Lille le 11/6 en présentiel https://devfest.gdglille.org/ Devoxx France du 31 juin au 2 Juillet en présentiel https://www.devoxx.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 246 - spécial Loi Société et Organisations avec Agnès Crepet
Dans cet épisode d'un format inédit, Audrey et Emmanuel recoivent Agnès Crepet, directrice technique chez Fairphone, pour discuter de l'actualité de ce qui d'habitude fait l'objet d'une rubrique dans les épisodes news mais qui commence à prendre beaucoup de place : la partie loi, société et organisations. Ca discute télétravail, cryptomonnaies, souveraineté numérique européenne, taxe numérique, protection des données, haine en ligne et surveillance de masse. On attends vos retours pour savoir s'il faut en faire d'autre de ce format (ou pas). Enregistré le 6 janvier 2021 Téléchargement de l'épisode LesCastCodeurs-Episode–246.mp3 Télétravail Les demandes de surveillance des employés ont augmenté de 51% depuis le début de la pandémie Télétravail : la Cnil interdit les keyloggers et tous les outils de surveillance déloyale du salarié Télétravaillez, vous êtes fliqués Les questions-réponses de la CNIL sur le télétravail hausse de 87% des recherches sur les outils de monitoring des employés en avril et encore 71% plus élevées que la normale en mai tableau qui récapitule tous les outils qui peuvent être utilisés ainsi que leur différentes fonctionnalités 81% d'entre eux proposent du keystroke logging qui permets à l'employeur de vérifier tous les clics effectués, toutes les touches du clavier frappées et d'avoir ainsi accès à toutes les conversations. Certains proposent même la capture de mots de passe ! la seconde problématique posée par ces outils c'est qu'ils proposent pour la plupart des réductions sur les abonnements à l'année, ce qui menace de rendre leur usage permanent La CNIL a elle enregistrée une hausse des questions liés à ces outils et a donc publié une liste de question réponses sur le sujet 2 choses sont à retenir : l'employeur ne peut pas placer ses salariés sous surveillance permanente, sauf cas exceptionnels liés à la nature de la tâche, comme par exemple la sécurité de sites ou de produits sensibles il faut toujours que le salarié et que le CSE, le Comité économique et social, soient informés au préalable de la mise en place d'un outil de surveillance. Cela correspond à l'obligation de loyauté de l'employeur vis à vis de ses salariés. Il ne doit pas chercher à les piéger. Sont donc formellement interdits les partages permanents d'écran, l'utilisation de « keyloggers », la surveillance constante via des dispositifs vidéo ou audio ou encore « l'obligation pour le salarié d'effectuer très régulièrement des actions pour démontrer sa présence derrière son écran ». En matière de visioconférence, la CNIL rappelle que l'employeur ne peut obliger son salarié à activer sa webcam (sauf cas exceptionnels, comme une démonstration produit par exemple) et qu'une « participation via le micro est suffisante ». Avant de conclure qu'en cas de surveillance excessive des salariés, elle dispose d'une « chaîne répressive complète lui permettant de mettre en demeure les organismes » et de prononcer des sanctions. Cryptomonnaies souveraines vs inititives privées Le Libra pourrait se lancer dès janvier dans une version «a minima» avec des objectifs revus à la baisse suite au tollé des banques centrales et des autorités financières la première version serait un actif arrimé uniquement au dollar («stable coin») sous réserve d'avoir obtenu d'ici là une licence en tant que système de paiement de l'autorité suisse de surveillance des marchés financiers, la Finma, au lieu d'être arrimés à un panier de devises voir ep 214 et 218 pour l'historique La BCE a lancé une consultation publique sur l'Euro numérique consultation lancée le 1er novembre, et ouverte jusqu'au 21 janvier 2021. inscription sur la page dédiée pour recevoir le lien l'euro numérique serait la forme électronique de l'euro émise directement par la BCE ce ne serait pas un remplacement à l'euro fiduciaire en net recul mais un complément plusieurs raisons : hausse de la demande de paiements électroniques dans la zone euro contrer le lancement des initiatives privées anticiper un évènement extrême qui pourrait mettre à mal les moyens déjà existant la décision ou non de poursuivre le projet reviendra au conseil des gourverneurs de la BCE mi 2021 Le Japon annonce la création d'une cryptomonnaie souveraine pour 2021 30 grandes entreprises participent à la création de cette monnaie objectif avoir une monnaie qui peut rendre les différentes plateformes mutuellement compatibles, aucune de ses plateformes numériques n'étant assez solide pour surpasser les paiements en espèces sera soumise à l'approbation des citoyens la Chine a déjà fait des tests au printemps dernier et prévois un déploiement en 2022 Souveraineté numérique européenne (en mode fail) En novembre 2020, Palantir (la société américaine derrière Cambridge Analytica) a rejoint GAIA-X en tant que membre. GAIA-X a été conçu comme une infrastructure de données et un écosystème numérique ouvert «initié par l'Europe, pour l'Europe» pour soutenir la compétitivité mondiale des entreprises européennes BPI France soutient
LCC 245 - Interview SRE avec Nicolas Helleringer et Maxime Brugidou - partie 2
Nicolas et Maxime de Critéo partagent avec Emmanuel leur expérience de mise en place d'une organisation SRE (Site Reliability Engineering). Suite et fin de cette interview. Enregistré le 12 novembre 2020 Téléchargement de l'épisode LesCastCodeurs-Episode–245.mp3 Interview Ta vie, ton oeuvre Twotter Nicolas Twitter Maxime Criteo Labs Intros et premiers sujets en partie 1 Episode 243 - partie 1 Concepts intéressants Standard Operating Procedure Gestion d'incident Dashboard Postmortem Comment ça se passe ? Relation avec l'équipe produit On code sur le produit ? Feedback loop Quid de systèmes fondamentalement en risque du black swan (échec systémique) Une équipe SRE par boite ? Une équipe SRE par produit ? Le monitoring Quoi mesurer ? Beaucoup, peu ? Entraînements et cas réels Que se passe-t-il quand cela chie dans la colle ? On s'entraine ? Vous faite le draining d'erreur budget Drainer des clusters pour maintenance et impact sur l'utilisateur Conclusions Livres Google sur le Site Reliability Engineering Nous contacter 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 244 - L'épisode maudit
D'abord on a perdu Guillaume corps et âme, ou plutôt piste et blagues. Ensuite on a perdu les shownotes. Puis le live. Puis le casque d'Audrey, et son micro dans la foulée. On a bien failli perdre le mix aussi. Mais bravant tous les obstacles, nous sommes quand même parvenus à faire l'épisode news de décembre. Enregistré le 11 décembre 2020 Téléchargement de l'épisode LesCastCodeurs-Episode–244.mp3 News On a un nouveau site web. Merci Marc Wrobel ! Langages Kotlin 1.4.20 Roman Elizarov devient le nouveau lead du projet AdoptOpenJDK accueille Dragonwell Librairies Le livre Vert.x in Action de Julien Ponge est sorti Sortie de Vert.x 4 Skija - librairie graphique pour la JVM Micronaut 2.2 Nashorn devient un projet indépendant Hibernate Reactive RESTeasy Reactive Infrastructure Docker Desktop pour Mac vers le support de Apple M1 Docker déprécié comme moteur de container dans Kubernetes * Don't panic * Docker et Mirandis s'allient pour supporter Docker Shim dans un projet indépendant de Kubernetes Cloud AWS fait tomber une grosse partie d'internet Le postmortem d'AWS plus intéressant Web & Front Cargo mobile Jetpack Compose Milestone 2 Outillage Maven 4 Brew 2.6.0 Méthodologies Faire le liant Sécurité L'attaque du DNS triste Est ce que Apple enregistre toutes les applications que vous executez ? Loi, société et organisation Les 9 phases d'un contributeur open source Il ne faut plus dire "digital" mais "numérique" Outils de l'épisode Rubrique débutant 7 façons de contribuer à Java Conférences Web Stories le 5/2 - Edition en ligne https://webstoriesconf.com/ Le Devfest Lille le 11/6 en présentiel https://devfest.gdglille.org/ 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 243 - Interview SRE avec Nicolas Helleringer et Maxime Brugidou - partie 1
Nicolas et Maxime de Critéo partagent avec Emmanuel leur expérience de mise en place d'une organisation SRE (Site Reliability Engineering). Enregistré le 12 novembre 2020 Téléchargement de l'épisode LesCastCodeurs-Episode–243.mp3 Interview Ta vie, ton oeuvre Twotter Nicolas Twitter Maxime Criteo Labs SRE en 2 phrases Site Reliability Engineering C'est une façon de monter un salaire de sysadmin ? Pourquoi Ops et dev, pourquoi "merger" ? DevOps avec un sysadmin dans l'équipe vs SRE Cela a du sens de le faire sur un "petit projet" ou uniquement si on gère 300k machines ? SRE au quotidien Journée type Dashboard On code en quoi? Pager (pendant les horaires travails vs dehors) Les weekends Taille SRE pour pour du 24/7 Combien de fois est-on appelé par nuit ? Prod fallback Le development Livre: le projet Unicorn Concepts intéressants 50% eng SLO SLI SLA La difficulté de la valeur initiale Perf passées vs calcul théorique Error budget Blast radius Burn rate Pré conclusion C'est la fin de la partie 1 de cette interview Nous contacter 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/ Flattr-ez nous (dons) sur https://lescastcodeurs.com/ En savoir plus sur le sponsoring? [email protected]
LCC 242 - Les Applets, 20 ans trop tôt
Guillaume n'était pas présent dans cet épisode, mais rassurez vous Emmanuel assure la permanence des blagues et accompagné d'Antonio et d'Audrey il commente les actus du mois de novembre : ça discute de Quarkus, Spring Boot, Gradle, Reactive Programming, Docker, sécurité et bien sûr, loi, société et organisation. Enregistré le 13 novembre 2020 Téléchargement de l'épisode LesCastCodeurs-Episode–242.mp3 News Langages Guide de migration à Scala 3 11 ans de Go Librairies Quarkus 1.9.0 Deux livres gratuits sur Quarkus par Antonio Helidon 2.1.0 R2DBC et Reactive Streams rejoignent la Reactive Foundation, qui publie ses principes de design pour les applications cloud native Spring Boot 2.4 Reactor Europium GA (2020.0.0) avec Reactor-core 3.4.0 et Reactor-netty 1.0.0 Infrastructure Les bonnes pratiques de sécurité pour ses Dockerfiles Docker mets en pause l'application de sa nouvelle police de gestion des images Cloud Google s'associe à OVH Cloud : alliance inédite entre l'américain Google et le français OVH Abandon de l'offre on-premise de atlassian (jira et confluence) Web Netlix passe à Kotlin multiplatform pour les applications iOS et Android JetBrains sors Jetpack Compose for Desktop en M1, basé sur Jetpack Outillage Gradle 6.7 Cédric Champeau modernise le build de Apache Groovy, avec des conventions modernes de Gradle Alternatives aux outils en ligne de commande écrits en Rust Hardware Il y a le bon câble USB et le mauvais câble USB USB power meter/analyzer et USB load tester pour detecter les mauvais cables Des cables qui gardent les 5v d'autres qui descendent à 4,1v Méthodologies Comment débugger votre équipe Sécurité Nouvelle CVE dans Chrome Faille de sécu sur les workflow GitHub GitHub oublié de renouveler son certificat. Oops Let's Encrypt devient grand Fun Comics sur les fonctions en bash par Julia Evans Loi, société et organisation Mobilizon l'alternative à Facebook proposée par Framasoft Loi Sécurité Globale : Surveillance généralisée des manifestations L'alerte de la défenseure des droits Tribune : "L'article 24 de la future loi ʻsécurité globale' menace la liberté d'informer" Identité numérique et reconnaissance faciale : le Conseil d'Etat a rendu son verdict Outils de l'épisode Crowdcast de Youri sur ses podcasts préférés Message A Carractere Informatique Electro Monkeys If This Then Dev Tech Rocks Podcasts No Limit Secu La Méthode Scinetifique C'est Plus Que De La SF Conférences Codeurs En Seine 2020 - Edition en ligne En novembre, les mardis à 19h et les jeudis à 21h 45 minutes de conférences + environ 15 minutes de questions En ligne sur Twitch + rediffusion Youtube Web Stories le 5/2 en ligne https://webstoriesconf.com/ Le Devfest Lille le 11/6 en présentiel https://devfest.gdglille.org/ 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 241 - Interview Cloud IDE avec Sun Tan et Marc Dumais
Marc Dumais et Sun Tan discutent des Cloud IDEs autour du micro. En particulier de Eclipse Che et de Eclipse Theia. Enregistré le 30 octobre 2020 Téléchargement de l'épisode LesCastCodeurs-Episode–241.mp3 Interview Ta vie ton oeuvre Marc Dumais Twitter de Sun @__sunix_ Le CFP young blood VIII du ParisJUG Eclipse Theia en 2 minutes Eclipse Theia VSCode Eclipse Che en 2 minutes Eclipse Che l'écosystème et la concurrence Beaucoup de rachats d'IDEs dans le cloud : GitHub Codespaces Cloud9 Boradwayd Le cloud IDE au quotidien J'ai pris mon café, maintenant je fais quoi? Chrome ou Firefox? Comment je sync avec mon repo Git Signer avec la clé GPG (sur le serveur?) Je veux installer une extension je fais comment Je partage du code avec quelqu'un, il se passe quoi Je peux partager le même workspace? Vous utilisez des workspaces différents comment? Parler de devfile Comment j'installe Che ? docker local? kube Experience Theia plugin La doc pour installer Che dans GCP Les types de flots de développement que cela ouvre Vs un IDE local Je peux avoir un IDE local et les avantages de l'IDE du cloud? Sous le capot Comment ça s'écrit la partie interface IDE Reactivité Latence Desktop vs cloud Thea Eclipse Theia Vient de quel besoin separé d'éclipse classique? Qui utilise Theia ? Architecture Il y a quoi derrière mon navigateur: Che server Che workspace Theia VS code extensions Debug server Kube "Tooling services" https://www.eclipse.org/che/technology/ Il reste quelque chose de l'eXo Cloud IDE ? VSCode extensions Comment ça fonctionne Protocole interaction Communauté Quel est l'écosystème Essayez Gitpod en ouvrant le project Eclipse Theia. Requiert un compte GitHub et un browser web moderne https://gitpod.io/#https://github.com/eclipse-theia/theia Exemple d'utilisation de Gitpod pour générer une version à jour des statistiques de contribution au projet: https://gitpod.io/#https://github.com/marcdumais-work/gitstats Twitter: @eclipse_che et #Chejoy Pour tester Che: https://che.openshift.io/ Nous contacter 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/ Flattr-ez nous (dons) sur https://lescastcodeurs.com/ En savoir plus sur le sponsoring? [email protected]