Les Cast Codeurs Podcast

Emmanuel Bernard, Guillaume Laforge, Vincent Massol, Antonio Goncalves, Aud
undefined
Jul 24, 2023 • 1h 44min

LCC 298 - De l'IA à toutes les sauces

Discussions sur les évolutions en Java, l'utilisation de l'intelligence artificielle avec GPT-4, le Java 21 et Rust chez Google. Mises à jour de Quarkus et du modèle de support de Red Hat. L'importance du web GPU, les SIMDS, les langages de programmation et l'outil Vim. Enfin, l'open source, la sécurité et les vacances des intervenants.
undefined
Jun 12, 2023 • 1h 14min

LCC 297 - Lockless design

Guillaume, Arnaud et Emmanuel discutent des nouvelles de mai et juin. La communauté Rust, WebAssembly. Guava, Debezium, Kafka, de flame graph, d'open source et bien sûr les large language models. On répond aussi à la question fondamentale: mais pourquoi Maven n'a pas de fichier .lock ? Enregistré le 9 juin 2023 Téléchargement de l'épisode LesCastCodeurs-Episode-297.mp3 News Langages Lors de Microsoft BUILD 2023, un des fondateurs de OpenAI a fait une excellente présentation de Large Language Models, des GPT https://build.microsoft.com/en-US/sessions/db3f4859-cd30-4445-a0cd-553c3304f8e2 Il parle du fonctionnement des LLM, comment/pourquoi ils arrivent à générer ce qu'ils génèrent Le fine-tuning, l'apprentissage renforcé avec feedback humain, l'art du prompting Des patterns comme Chain of Thought (CoT) ou ReAct (Reflect then Act) Leaning Technologies annonce l'arrivée prochaine de CheerpJ 3 : le retour de Java dans la navigateur, grâce à WebAssembly https://leaningtech.com/announcing-cheerpj-3-0-a-jvm-replacement-in-html5-and-webassembly-to-run-java-applications-and-applets-on-modern-browsers/ Avant la version 3.0, CheerpJ utilisait une approche AOT (ahead of time compilation) qui nécessitait aussi une étape d'intégration continue pour transformer aussi toutes les dépendances JAR associées à un projet Avec la version 3.0, qui devrait sortir cet été, CheerpJ adopte une approche JIT (Just In Time compilation) qui ressemble plus à l'approche de Java lui même Plus besoin non plus de version custom d'OpenJDK Les Applets vous avaient manqué ? Elles sont de retour avec WebAssembly :smile: Communauté RUST: Il y a de l'eau dans le gaz https://www.jntrnr.com/why-i-left-rust/ Plus d'infos https://gist.github.com/fasterthanlime/42da9378768aebef662dd26dddf04849 lié au backchannel et un petit groupe qui essaie de faire les choses bien mais qui derappe de l'exterieur en gros ils ont un process interne pour prendre des decisions avec ce process ils ont invité une personne pas super pro Rust a faire la keynote a RustConf d'autres du commité ont vu ca et on discuté en backchannel pour revenir en arriere de la decision (sans suivre le process) il y a eu une semaine de pause avant action mais pas annoncé le speaker a ete dé keynoté et a donc refusé de venir a la conf et paf, ca enerve des gens decisionaire et ils demissionnent Bref des gens qui veulent faire le bien mais en cercle un peu trop ferné et paf Les gens de Wasmer étendent WASI avec WASIX, on rajoutant le support POSIX, les threads… permettant de compiler vers WASM plein de projet C/C++ ou Rust, comme cURL ou autre https://wasmer.io/posts/announcing-wasix ca frotte un oeu entre innovation et standardisation dans la communaite WASM WASMER sont un peu les cowboys startuper par exemple ils ont essayé de deposer la marque WebAssemble au nez et à la barbe de la communauté donc la reaction du coeur de la communauté a cette annonce est plutôt calme WASI c'est standard mais ca prend du temps a maturer WASIX c'est cool et dispo maintenant mais c'est un produit d'une société spécifique, donc pas de portabilité Librairies Guava 32 est sorti et beaucoup de choses annotées en @Beta ne le sont plus https://www.reddit.com/r/java/comments/13w2l8w/guava_320_released_today_and_the_beta_annotation/ ont eu des API en @Beta pendant longtemps pour proteger des risques de changements en pratique quasi personne ne se limitait au non beta, et elles n'ont pas bougé ces API ou peu donc ils ont enlevé @Beta de la plupart beaucoup de parties de Guava sont dans le JDK, le cache est dans Caffeine des bons echanges dans les commentaires entre les utilisateurs et Kevin un des mainteneurs chez Google Comment démarrer avec l'API PaLM de Google, mais en Java! https://glaforge.dev/posts/2023/05/30/getting-started-with-the-palm-api-in-the-java-ecosystem/ Guillaume a écrit une petite application qui génère des histoires pour enfants avec un Large Language Model (l'API PaLM) https://bed-time-stories.web.app/ Le code est dispo sur Github https://github.com/glaforge/bedtimestories Il explique également le processus incrémentale des prompts qui aident à générer aussi le contenu de l'application https://glaforge.dev/posts/2023/06/08/creating-kids-stories-with-generative-ai/ Infrastructure Debezium 2.2 https://debezium.io/blog/2023/04/20/debezium-2-2-final-released/ Experimental, opt-in Parallel Snapshots Incremental snapshots with surrogate keys Quarkus 3 support Ingestion of Oracle changes from logical standby instances Google Spanner improvementsNew Debezium Server sinks for Infinispan, RabbitMQ, and RocketMQ New Storage APIs for Amazon S3 and RocketMQ Many MongoDB improvements Cassandra connector for Cassandra Enterprise Un article sur l'utilisation de Kafka par CloudFlare https://www.infoq.com/articles/kafka-clusters-cloudflare/?utm_campaign=infoq_content&utm_source=twitter&utm_medium=feed&utm_term=architecture-design c'est du "classique" mais bon de se le faire rappeler beaucoup d'evenements CloudFlare passent pas Kafka pour processing Kafka en tant que bus generique Ils ont imposé un message unique par topic via protobuf ils sont une Application Service team (internal developer platform) depuis peu de temps gitops pour creation de topic etc développé un connector framework declaratif pour étendre le pannel de patrons d'architecture disponibles developé des SDKs d'access a KAfka avec monitoring (prometheus) sympa a lire Post mortem du problème chez datadogHQ https://www.datadoghq.com/blog/2023-03-08-multiregion-infrastructure-connectivity-issue/ data dog a perdu tous ces services dans la plupart ou toutes ses regions pendant 3 heures avant la premiere recuperation et 10 heures au total pour la recuperation totale Equipe : 10 senior engineering leaders, about 70 local incident commanders and a pool of 450 to 750 incident responders active throughout the incident, which required four shifts to bring the incident to full resolution. cause: une mise a jour de systemd appliqué sur la plupart de leurs VM en quasi parallele qui a effacer les routes des container et ne les a aps remis ; c'est un cas qui n'arrive pas au reboot d'un noeud (init sequence) des 10000s noeuds impactés en general ils font du rollout par region en enlevant les noeuds etc mais le base os avait un legacy update channel activé (vs gere pas les equipes de datadog manuellement) les noeuds de controlleurs qui sont cense recycler les noeuds n'ont pu le faire vu le volume de noeud et surtout parce qu'eux meme étaient effectés l'autre article Cloud Le data center parisien europe-west9-a est en panne depuis 3 semaines https://www.lebigdata.fr/data-center-panne un feu s'est déclenché qui a touché une zone le DC reste opérationnel sur les zones non touchée sauf BigTable qui a besoin de la zone touchée les autres services fonctionnent sauf les applis utilisateurs qui ne tournaiuent que sur la zone affecté Outillage Podman Desktop 1.0 est sorti https://podman-desktop.io/blog/podman-desktop-release-1.0 pas grand chose a dire que c'est la 1.0 "Works on my machine" Contract testing with Pact https://hollycummins.com/contract-testing-devoxx-greece/ Conference quand on change un microservice l'autre casse les tests d'integration sont lent, instable et demande des grosses machines ou des environnements remote de dev mock / unit tests ne sont pas vraiment le code de l'autre équipe D'où Contract test qui vit entre les end to end et les unit tests. Peut partir d'un test mock et rempalcer avec pact cote consommateur en faisait tourner, un pack listener enregistre la declaration (le DSL) et le retours attendus / generés par l'appel du test copier ce fichier vers le producteur copier a la main, dans le repo, via a broker ajoute un test pact cote producteur qui va exercer le JSON et verifier que cela marche tests de pack sont plus profonds qu'un test OPENAPI consommateur utilise pact comme mock et verifie le provider wrt le contract du mock Pourquoi Maven n'a pas de fichier lock ? https://www.reddit.com/r/Maven/comments/vkcmys/why_maven_doesnt_have_a_lock_file_like/?utm_source=share&utm_medium=ios_app&utm_name=ioscss&utm_content=1&utm_term=9 conversation interessance sur les fichiers .lock dans les builds Par exemple ruby a le Gemfile.lock, npm pareil mais pas Java? Fondamentalement c'est du aux valeurs par defaut initiales et à la culture de la communauté les version range sont peu ou pas utilisés en Maven alors que le default dans d'autres plateformes la poule et l'oeuf Simplifier les flame graph avec jbang https://someth2say.wordpress.com/2023/06/04/jbang-and-flame-graphs/ discute les flame graph pour le temps comsommé et pas un call graph hauteur c'est la profondeur d'appel ne regarder que la largeur, pas l'ordre pas quand et ou une action est faite mais qui l'a fait reste discute comment utiliser jbang pour lancer le prgramme et le javaagent Les modérateurs de Stack Overflow en greve contre le flux de réponses d'intelligence artificeille https://openletter.mousetail.nl/ le ban des contenus generes par l'IA a ete levé discrètement par stack overflow peur du flux de données massif et des hallucinations difficiles à détecter sans passer du temps pas de consensus communautaire stackoverflow est une des sources trustées pour les LLM des intelligences arificielles generatives (serpent qui se mord la queue) les modérateurs font tourner l'anti spam, gere les flag levés, ferment ou effacent les entrées, genre les bots qui detectent le plagiat etc. 414 votants des les premiers heures Just, un petit outil en ligne de commande avec une syntaxe inspirée de make, pour exécuter des commandes fréquentes dans nos projets https://glaforge.dev/posts/2023/06/07/just-a-handy-command-line-tool/ Syntaxe proche de celle de make Possibilité de définir des dépendances entre tâches Support de paramètres Peut charger des fichier .env S'installe sur tous les systèmes d'exploitation qu'on aime bien et qu'on n'aime pas aussi Méthodologies AWS retire ses documentations en Open Source https://www.infoq.com/news/2023/06/aws-documentation-github/ ils ont open sourcé en espérant des contributions il y a deux ans mais sans changer les approche en interne resultat copie de repo de l'interieur vers l'exterieur tracker de travail interne != externe c'était plus compliqué leçon, embrace entièrement sinon les frictions sont compliquées Un guide pour communiquer avec l'IA: https://learnprompting.org/ Gratuit et open source Prompt Engineering ou comment rédiger vos prompts Plusieurs niveau (Basic, Intermediaire, Avancé..) Défini plein de concepts: Prompt, Few Shot Prompt, LLMs… Loi, société et organisation Migration de Twitter vers Mastodon (ou plutôt "dual run") https://glaforge.dev/talks/2023/06/09/from-bird-to-elephant-starting-a-new-journey-on-mastodon/ Présentation de Guillaume à Devoxx France et Grèce Avec code sur Github pour un bot Mastodon: https://github.com/glaforge/stootistics Et un service en ligne pour voir la popularité de ses derniers posts sur Mastodon https://stootistics.web.app/ Conférences Aurelie Vache publie sont agenda des conferences via le site: https://developers.events/ La liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs : 14-15 juin 2023 : OW2 openSource Conf - Paris (France) 14-17 juin 2023 : VivaTech (Viva Technology) - https://vivatechnology.com/) - Paris (France) 15-16 juin 2023 : Le Camping des Speakers - Baden (France) 15-17 juin 2023 : Pas Sage En Seine - Choisy-le-Roi (France) 20 juin 2023 : Mobilis in Mobile - Nantes (France) 20 juin 2023 : Cloud Est - Villeurbanne (France) 20-22 juin 2023 : Adeo DevSummit - Lille (France) 21-23 juin 2023 : Rencontres R - Avignon (France) 23 juin 2023 : Unconf HackYourJob - Région lyonnaise (France) 28-30 juin 2023 : Breizh Camp - Rennes (France) 29 juin 2023 : Google Cloud Summit France - Paris (France) 29-30 juin 2023 : Sunny Tech - Montpellier (France) 29-30 juin 2023 : Agi'Lille - Lille (France) 7-9 juillet 2023 : Nantes Maker Campus - Nantes (France) 2-3 septembre 2023 : SRE France SummerCamp - Chambéry (France) 6 septembre 2023 : Cloud Alpes - Lyon (France) 8 septembre 2023 : JUG Summer Camp - La Rochelle (France) 14 septembre 2023 : Cloud Sud - Remote / Toulouse (France) 18 septembre 2023 : Agile Tour Montpellier - Montpellier (France) 19-20 septembre 2023 : Agile en Seine - Paris (France) 19 septembre 2023 : Salon de la Data Nantes - Nantes (France) & Online 21-22 septembre 2023 : API Platform Conference - Lille (France) & Online 25-26 septembre 2023 : BIG DATA & AI PARIS 2023 - Paris (France) 28-30 septembre 2023 : Paris Web - Paris (France) 2-6 octobre 2023 : Devoxx Belgium - Antwerp (Belgium) 6 octobre 2023 : DevFest Perros-Guirec - Perros-Guirec (France) 10 octobre 2023 : ParisTestConf - Paris (France) 11-13 octobre 2023 : Devoxx Morocco - Agadir (Morocco) 12 octobre 2023 : Cloud Nord - Lille (France) 12-13 octobre 2023 : Volcamp 2023 - Clermont-Ferrand (France) 12-13 octobre 2023 : Forum PHP 2023 - Marne-la-Vallée (France) 19-20 octobre 2023 : DevFest Nantes - Nantes (France) 19-20 octobre 2023 : Agile Tour Rennes - Rennes (France) 26 octobre 2023 : Codeurs en Seine - Rouen (France) 25-27 octobre 2023 : ScalaIO - Paris (France) 26-27 octobre 2023 : Agile Tour Bordeaux - Bordeaux (France) 10 novembre 2023 : BDX I/O - Bordeaux (France) 15 novembre 2023 : DevFest Strasbourg - Strasbourg (France) 16 novembre 2023 : DevFest Toulouse - Toulouse (France) 6-7 décembre 2023 : Open Source Experience - Paris (France) 7-8 décembre 2023 : TechRocks Summit - Paris (France) 31 janvier 2024-3 février 2024 : SnowCamp - Grenoble (France) 19-22 mars 2024 : KubeCon + CloudNativeCon Europe 2024 - Paris (France) 28-29 mars 2024 : SymfonyLive Paris 2024 - Paris (France) 17-19 avril 2024 : Devoxx France - Paris (France) 25-26 avril 2024 : MiXiT - Lyon (France) 25-26 avril 2024 : Android Makers - Paris (France) 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/
undefined
May 25, 2023 • 1h 45min

LCC 296 - Interview Google IA IA I/O 2023

Dans cet épisode, les sujets passionnants abordés incluent les nouveaux téléphones Pixel, l'IA dans Android et Google Workspace, les Large Language Models, les subtilités du langage des signes, le jeu en ligne I/O Flip, les fonctionnalités de divertissement de Tesla, les avancées technologiques de Google avec l'IA et les projets expérimentaux, les nouvelles fonctionnalités d'IA de Google, l'intégration des outils de développement avec Google Cloud et les avancées sur Flutter et Dart, l'impact de l'IA sur la société et le travail, et l'utilisation de l'IA pour générer des histoires pour enfants.
undefined
May 15, 2023 • 1h 32min

LCC 295 - La librairie rentre dans le cadre

Dans cet épisode, Arnaud, Antonio et Emmanuel décortiquent les nouvelles d'avril et mai. On y discute Java 20, ecrire un profiler de zéro, Quarkus 3 (encore !), Micronaut 4, Podman, JReleaser, GitHub, CloudEvent, GraphQL, licenciements (encore !), et de la question a 1000 francs: librarie vs framework, quelle différence? Mais pas que. Enregistré le 12 mai 2023 Téléchargement de l'épisode LesCastCodeurs-Episode–295.mp3 News Langages Un descriptif du changement de paiement d'Oracle JDK https://horstmann.com/unblog/2023–02–23/ Cay Horstmann Explique OpenJDK avec plusieurs distributeurs Prefère Adoptium dont celle par défaut est Eclipse Temurin Pour Oracle, beaucoup d'options de licenses (no-fee, binary code, OTM license) Oracle depense beaucoup pour Java La license en discussion est Java SE Universal Subscription Licensing passage de license par CPU (Java SE advanced) vers license par employé (et une assiete large) Bref si vous êtes concernés, passer sur OpenJDK: Adoptium, ou d'autres vendeurs Java 20 est sorti : qu'y a t'il de nouveau dans Java 20 par rapport à Java 19 ? https://foojay.io/today/its-java–20-release-day-heres-whats-new/ L'article fait le point sur ce qu'il y a de nouveau par rapport à la précédente release : 4ème preview du pattern matching pour switch 2nde preview des record patterns 2nde preview des virtual threads incubation des scoped values (similaire au thread locals mais pour les virtual threads) 2nde incubation de la structured concurrency 2nd preview de foreign function et memory API 5ème incubation de la vector API (pour utiliser les instructions vectorielles des processeurs) La liste des JEPs : https://openjdk.org/projects/jdk/20/ Les release notes : https://jdk.java.net/20/release-notes dans le pattern matching switch: guarde when Record pattern: utilisation de var. utilisable dans les for aussi maintenant for (Delay(var timeInMS) : delays) quelques changements autour de l'API Thread est non preview (main API) Les ScopedValue sont comme les threadlocal par (virtual) thread mais elles sont immuables une fois écrites. use cases: copie d'etat pour des données non changeantes pour le virtual thread Serait interessant d'avoir des details dessus PDF 2.0 maintenant un vrai format ISO ouvert et gratuit https://www.pdfa.org/sponsored-standards/ standard dispo sans cout versions precedentes étaient payantes clarifications et corrections de beaucoup de corner cases Librairies Écrire un Profiler en 240 lignes de Java https://mostlynerdless.de/blog/2023/03/27/writing-a-profiler-in–240-lines-of-pure-java/ Ce n'est peut-être pas si compliqué d'écrire soi même un Java Profiler ! Et justement cet article nous montre comment le faire, en créant un Java Agent, en analysant les stacks d'appel, et à la fin en créant même un flame-graph en HTML Très didactique ! fondamentallement: appeler Threads:getAlStackStrace reguilerement et faire une liste des methodes visibles et créer un flamegraph a partir de ces données L'équipe de Flutter partage les grands thèmes de sa roadmap https://flutter.dev/go/strategy–2023 Performance, interopérabilité, portabilité, écosystème, sécurité, fondamentaux (comme la documentation, la fidélité des UI natives, adresser les issues publiques) Quarkus 3 est sorti https://quarkus.io/quarkus3/ on a deja couvert Hibernate ORM 6.2 nouvelle DevUI et admin sur un port different Support for Pact quarkus deply et extensibilite de la CLI avec des nouveaux verbes dev services for Kubernetes simule un Kube pour tester les calls vers l'API Kube Java 11 et 17 (recommendé) Jakarta EE Eclipse MicroProfile 6 Une librairie en Java spécialement pour l'astronomie par Cédric Champeau https://melix.github.io/blog//2023/04–22-introducing-astro4j.html différentes librairies et applications pour traiter les images issues de sol'ex qui permet de prendre des photos du soleil Micronaut 4 milestone 2 est sorti. Les nouveautés de Micronaut 4 https://docs.micronaut.io/4.0.0-M2/guide/index.html#whatsNew Kotlin 1.8.0 Experimental Support for Kotlin Symbol Processing (KSP) Apache Groovy 4.0 Core Changes Java 17 Baseline Improved Modularity GraalVM Metadata Repository and Runtime Initialization Completed javax to jakarta Migration Expression Language Injection of Maps Arbitrary Nesting of Configuration Properties Improved Error Messages for Missing Configuration Improved Error Messages for Missing Beans Tracking of Disabled Beans HTTP Changes Initial Support for Virtual Threads (Loom) Rewritten HTTP layer Annotation-Based HTTP Filters JDK HTTP Client Infrastructure 5 choses à savoir sur Podman Desktop pour un utilisateur Docker https://podman-desktop.io/blog/5-things-to-know-for-a-docker-user Une UI unique pour travailler avec différents moteur de conteneurs, et pas uniquement Docker Compatible avec Docker avec un mode adapté pour fonctionner aussi avec la docker CLI ou docker.sock pour les sockets Support de Compose Support de Kubernetes Securité : on peut utilisé rootless sans avoir les privilèges root socket est particulierement utile pour TestContainer compose n'est pas supporte en tant que tel mais on pout faire utiliser podman par compose podman peut emuiler / executer des definitions de pods si besoin d'exposer des ports Keycloak rejoins la CNCF https://www.tfir.io/keycloak-cloud-native-iam-for-cloud-native-applications-joins-the-cncf/?utm_campaign=shareaholic&utm_medium=linkedin&utm_source=socialnetwork IAM complete au sein de la CNCF Keycloak sur base Quarkus : "cloud natif" Cloud Un petit article court de chez Baeldung qui liste des distributions Kubernetes légères () et partage leurs avantages et inconvénients respectifs https://www.baeldung.com/ops/kubernetes-lightweight-distributions Minikube (que des clusters à noeud unique) MicroK8S (à jour avec les releases Kubernetes, mais pas de support des CPUs ARM32) Kind (conteneurs considérés comme des noeuds, plus difficile à configurer avec autre chose que Docker) K3S (moins de consommation de resources) Il y a la liste des 100 trucs annoncés : https://blog.google/technology/developers/google-io–2023–100-announcements/ Bard, le concurrent de ChatGPT, disponible dans 180 pays… sauf les pays européens Pixel 7a, Pixel Tablet et Pixel Fold Plein d'annonces autour de l'AI avec l'API PaLM (utilisée dans Bard), plein de Generative AI de partout dans les produits (search, workspace,..), y compris un modèle de code (qui comprends même le Groovy) qui va être intégré aux IDE, VSCode, etc Outillage Connaissiez vous le flag –json de curl ? https://glaforge.dev/posts/2023/03/22/curl-s-json-flag/ Ca va simplifier nos interactions avec les APIs qui utilisent du JSON Plus besoin de passer les headers de content-type et d'accept, c'est moins verbeux Rajouté il y a un an dans curl 7.82 (pour info, sur mon mac, par exemple, je suis en 7.86) curl --json '{ "drink": "coffe" }' [https://example.com](https://example.com) ou curl --json @prepared [https://example.com](https://example.com) pour pointer vers un fichier Rétropédalage chez Docker https://www.docker.com/blog/no-longer-sunsetting-the-free-team-plan/ Github supprime le sponsoring par Paypal… et plein de développeurs Open Source perdent leurs sponsorships https://github.com/orgs/community/discussions/45183 Juste un très cours blog post dans le changelog indiquant ce changement https://github.blog/changelog/2023–01–23-github-sponsors-will-stop-supporting-paypal/ peut etre suite au piratage de Paypal et aux risques de paiements frauduleux et de réputation? Github a mis à jour sa clé RSA SSH Host https://github.blog/2023–03–23-we-updated-our-rsa-ssh-host-key/ Apparemment, ils ont committé brièvement leur clé privée, oops ! Potentielle disruption pour certains, avec impossibilité de committer son code Il faut alors "oublier" l'ancienne clé publique et mémoriser la nouvelle Personnellement, j'ai committé du code à partir de Visual Studio Code et je n'ai pas eu de soucis que sur RSA et pas sur les clés a courbe elliptique clef porivée aurait pu faire du spoofing ou de dechiffremetn de flux en ssh via RSA vers github 2ème anniversaire de JReleaser https://andresalmiray.com/jreleasers-second-birthday/ jreleaser permet de publier sur plusieurs appstores (homebroew, jbang, etc) publie sur maven central automatiquemenr publie les annonces sur twotter zulip etc publication de binaires (gitHub etc) et de changelogs Architecture Introduction à CloudEvents https://atamel.dev/posts/2023/04–03_cloudevents_basics/ decrire des evenement de données de manière commune metadata standardisees pour le routage en JSON ou en cloudevents+json metadonnées incluent: id, source, type, sujet, time, type de contenu de donnée, scheme ade donnée et des extensions comme partitioning etc binary mode: data dans le corps du message, et metadonnées en header. efficace pour parsing minimal structured-mode: data et metadata dans la meme enveloppe batch-mode: plusieurs evenements en un seul envoie formats: JSON, protobuf, Avro et XML protocoles: HTTP, AMQP, KAfka, MQTT, NATS, WebSocket Des evolutions futures planifiées GraphQL, tout n'est pas si rose https://betterprogramming.pub/graphql-from-excitement-to-deception-f81f7c95b7cf pour Facebook qui pense en tant que graph de données Pour leur appli mobile qui devait etre a bande apssante limitée choses positives: one requete pour plusieurs resources, selection des données dont on a besoin uniquement, typé (entre client et serveur), meilleur outilllage dev pour l'exploration, pas de soucis de version d'API? equipe qui embrace GraphQL en 2019 les perf optimisées apr un choix de données ne s'set pas materialisé pour eux (sauf mobile, doncpas machine- mache et desktop) la latence de REST reste mieux que GraphQL en pratique desktop et mobile sont assez similaire en données fetchées schemas apportaient des problemes en pratique ; synchro front et back, code first generation avait des problemes de qualite de code genere schema -> code est meilleur mais synchro front back toujours un probleme en pratique erreurs, plus simple en rest avec les codes HTTP a debugger et monitorer version free est une mensonge, les schemas ne peuvent etre cassés pagination est compliqué et non standard et caching est primitif comparé a REST n+1 probleme comme dans les ORMs ou alors dataloaders qui amene de la complexité securite est plus compliqué a cause de la nav libre de GraphQL ecosysteme pas super mature pour les besoins encore et paradoxalement tres complexe Méthodologies Trends technologie et culture par InfoQ https://www.infoq.com/articles/culture-trends–2023/ les licenciement ont cassé les effets de psychological safety dans l'industrie les IA genratives ont un impact fort sur la productivité du développeur mais aussi avec des faiblesses significatives au dela du legal, les responsabilités societales deviennent plus importantes pour retenir employés et clients Le travail asynchrone devient plus accepté socialement et adopter les practiques apportent des bénéfices réels Le travail hybride devient la norme, amener les gens ensemble devient un choix délibéré, plus un horaire fixe Loi, société et organisation Red Hat fête ses 30 ans ! (limite, on n'était même pas nés, hein ?) https://www.redhat.com/en/blog/red-hat–30th-anniversary-celebrating-red-hat-day-north-carolina Red Hat licencie 4% de ses employés https://wraltechwire.com/2023/04/24/red-hat-cutting-hundreds-of-jobs-ceo-says-in-letter-to-employees/ IBM avait annoncé 3900 licenciements il y a peu et cela monte à 5000 avec les licenciements chez Redhat (les effectifs étaient de 2200 à Raleigh et 19000 à l'international) Licenciements suite au contexte économique post Covid, les revenus trimestriels de redhat n.ont été que de 8% en Q1 alors que la croissance était de 15 depuis l'acquisition de redhat par ibm en 2019 Crazy Bob est décédé :scream: https://www.sfgate.com/bayarea/article/mill-valley-man-killed-sf-stabbing–17878809.php Annonce sur TechCrunch https://techcrunch.com/2023/04/05/bob-lee-creator-of-cash-app-and-former-cto-of-square-stabbed-to-death/ Il avait créé le framework Guice, d'injection de dépendance, mais aussi Dagger Il a contribué aux librairies d'Android Il avait proposé une syntaxe alternative aux lambda : CIC Il a coécrit le livre Bitter EJB https://www.manning.com/books/bitter-ejb Il avait des idées bien tranchées, anti-Spring, anti-Groovy (pro-BeanShell), anti-lambda (tels qu'on les connait aujourd'hui) Guillaume l'avait rencontré pour la première fois en 2007 https://blog.octo.com/javaone–2007-et-groovy-chez-google/ Les gens partagent leurs souvenirs sur ce thread sur HackerNews https://news.ycombinator.com/item?id=35457341 10 millions de comptes sur Mastodon https://mastodon.social/@mastodonusercount/110051957865629817 Peut-être pas 10 millions de comptes actifs, mais d'autres commentateurs estiment le nombre d'actifs serait plutôt de 6 à 7 millions actifs, pour effectivement 10 millions de comptes créés donc certains inutilisés ou disparus (serveur disparu) Gordon Moore meure à 94 ans https://www.lemonde.fr/economie/article/2023/03/26/mort-de-gordon-moore-entrepreneur-par-accident-et-cofondateur-d-intel_6167037_3234.html#xtor=AL–32280270-%5Bdefault%5D-%5Bios%5D chimiste de formation, il refuse de bosser autour de la bombe atomique et fini dans la silicon valley fonde un des premiers semiconducteurs (plusieurs transistors ensemble) Intel sera un des rpemier a parier sur le silicium (pour construire de la mémoire) et un des premiers a faire une puce intégré regroupant plusieurs fonctions Twitter open source ses algorithmes de recommendation https://blog.twitter.com/engineering/en_us/topics/open-source/2023/twitter-recommendation-algorithm on retrouve le code source sur Github https://github.com/twitter/the-algorithm-ml et quelqu'un a déjà trouvé où il y a des clauses particulières pour le cas où un tweet vient d'Elon Musk, où un tweet vient d'un républicain ou d'un démocrate https://uwyn.net/@danluu@mastodon.social/110119479811452246 L'algorithme de Twitter https://aakashgupta.substack.com/p/the-real-twitter-files-the-algorithm analyse sans sensation trois étapes: aggravation des données, construction des "features", mixage Followers, nos tweets et nous Plus gros booster likes 30x, puis retweet 20x Features: SimCluster: groupe par categories/personnes le tweet Feature: TwHIN: vecteur de prediction d'engagement pour un tweet donné Features: RealGraph, prend le tweet, the tweeter et le tweeté et construit un graphe pondéré de potentiel d'interaction Règles de confiance et securité: élimine certains sujets (cela censure plus depuis Elon Musk) Mixer: prend tout et construit la "timeline" Utilisateur répond aux réponses: x75 En fait que 80% du code ouvert The end of faking it in silicon valley https://www.nytimes.com/2023/04/15/business/silicon-valley-fraud.html les startup qui brulaient du cash sans business model clair proces et prisons pour falsification de données clients le approches non etique ne sont plus ignorées avant les investisseurs avaient peur de se mettre les createur de boite a dos, maintenant, l'argent vaut cher "finding out who is swimming naked when the tide goes out" Warren Buffet "It feels like we were in a nightclub and the lights just turned on" ils vont evaluer plus exhaustivement les foundateurs le probleme c'\est que VC c'est sur la confiance (one way au moins) et que la c'est cassé Rubrique débutant On parle souvent de librairies et de frameworks, mais c'est quoi la différence ? https://www.red-gate.com/simple-talk/development/other-development/the-difference-between-libraries-and-frameworks/ Une librairie est une collection de classes, de fonctions, de code, que l'ont peut utiliser pour des tâches spécifiques, pour éviter au développeur de réinventer la roue (par exemple une librairie comme Joda Time qui permet de simplifier / codifier la représentation du temps) Il y a différents types de librairies : des librairies statiques ou dynamiques, suivant si elles sont chargées au runtime ou bien attachées au code que l'on compile. Il y a des librairies standards (comme celles venant du JDK et donc inclues avec lui) ou des librairies tierces (que l'on va par exemple trouver sur Maven Central) Un framework (un "cadriciel" en bon françois) c'est aussi un ensemble de code, mais aussi de librairies, qui va offrir un cadre de développement pour ses applications. Par exemple un framework web qui permet de créer des applications web plus facilement, ou Tensorflow pour développer de nouveaux algorithmes d'intelligence artificielle, ou Unity pour développer des jeux vidéos Mais un framework est effectivement plus "cadrant" dans le sens où on doit suivre ses recommendations sur comment structurer son code, comment étendre des classes ou interfaces du framework, etc. ainsi que les bonnes pratiques et parfois une boite a outil "prete a l'emploi vs assemblage article decrit les pour et les contre Conférences Une liste de conférences Java https://javaconferences.org/ La liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs : 10–12 mai 2023 : Devoxx UK - London (UK) 12 mai 2023 : AFUP Day - Lille & Lyon (France) 12 mai 2023 : SoCraTes Rennes - Rennes (France) 25–26 mai 2023 : Newcrafts Paris - Paris (France) 26 mai 2023 : Devfest Lille - Lille (France) 27 mai 2023 : Polycloud - Montpellier (France) 31 mai 2023–2 juin 2023 : Devoxx Poland - Krakow (Poland) 31 mai 2023–2 juin 2023 : Web2Day - Nantes (France) 1 juin 2023 : Javaday - Paris (France) 1 juin 2023 : WAX - Aix-en-Provence (France) 1–2 juin 2023 : Agile Tour Toulouse - Toulouse (France) 2 juin 2023 : Flutter Connection - Paris (France) 2–3 juin 2023 : Sud Web - Toulouse (France) 7 juin 2023 : Serverless Days Paris - Paris (France) 14–15 juin 2023 : OW2 openSource Conf - Paris (France) 14–17 juin 2023 : VivaTech (Viva Technology) - https://vivatechnology.com/) - Paris (France) 15–16 juin 2023 : Le Camping des Speakers - Baden (France) 15–17 juin 2023 : Pas Sage En Seine - Choisy-le-Roi (France) 20 juin 2023 : Mobilis in Mobile - Nantes (France) 20 juin 2023 : Cloud Est - Villeurbanne (France) 20–22 juin 2023 : Adeo DevSummit - Lille (France) 21–23 juin 2023 : Rencontres R - Avignon (France) 28–30 juin 2023 : Breizh Camp - Rennes (France) 29 juin 2023 : Google Cloud Summit France - Paris (France) 29–30 juin 2023 : Sunny Tech - Montpellier (France) 29–30 juin 2023 : Agi'Lille - Lille (France) 7–9 juillet 2023 : Nantes Maker Campus - Nantes (France) 8 septembre 2023 : JUG Summer Camp - La Rochelle (France) 18 septembre 2023 : Agile Tour Montpellier - Montpellier (France) 19–20 septembre 2023 : Agile en Seine - Paris (France) 19 septembre 2023 : Salon de la Data Nantes - Nantes (France) & Online 21–22 septembre 2023 : API Platform Conference - Lille (France) & Online 25–26 septembre 2023 : BIG DATA & AI PARIS 2023 - Paris (France) 28–30 septembre 2023 : Paris Web - Paris (France) 2–6 octobre 2023 : Devoxx Belgium - Antwerp (Belgium) 6 octobre 2023 : DevFest Perros-Guirec - Perros-Guirec (France) 10 octobre 2023 : ParisTestConf - Paris (France) 11–13 octobre 2023 : Devoxx Morocco - Agadir (Morocco) 12 octobre 2023 : Cloud Nord - Lille (France) 12–13 octobre 2023 : Volcamp 2023 - Clermont-Ferrand (France) 12–13 octobre 2023 : Forum PHP 2023 - Marne-la-Vallée (France) 19–20 octobre 2023 : DevFest Nantes - Nantes (France) 19–20 octobre 2023 : Agile Tour Rennes - Rennes (France) 26 octobre 2023 : Codeurs en Seine - Rouen (France) 25–27 octobre 2023 : ScalaIO - Paris (France) 26–27 octobre 2023 : Agile Tour Bordeaux - Bordeaux (France) 10 novembre 2023 : BDX I/O - Bordeaux (France) 15 novembre 2023 : DevFest Strasbourg - Strasbourg (France) 16 novembre 2023 : DevFest Toulouse - Toulouse (France) 6–7 décembre 2023 : Open Source Experience - Paris (France) 7–8 décembre 2023 : TechRocks Summit - Paris (France) 31 janvier 2024–3 février 2024 : SnowCamp - Grenoble (France) 19–22 mars 2024 : KubeCon + CloudNativeCon Europe 2024 - Paris (France) 28–29 mars 2024 : SymfonyLive Paris 2024 - Paris (France) 17–19 avril 2024 : Devoxx France - Paris (France) 25–26 avril 2024 : MiXiT - Lyon (France) 25–26 avril 2024 : Android Makers - Paris (France) 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/
undefined
Apr 17, 2023 • 55min

LCC 294 - A Devoxx France 2023 en chair en os et en béret

Les Cast Codeurs font la clôture de Devoxx France 2022 en chair, en os et en béret. Enregistré le 14 avril 2023 Téléchargement de l'épisode LesCastCodeurs-Episode–294.mp3 Interview La vidéo du direct Devoxx France qui est plus facile à suivre se trouvera 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/
undefined
Apr 6, 2023 • 56min

LCC 293 - Interview Maven et builds reproductibles avec Hervé Boutemy

Dans le cocon de jchateau, Hervé Boutemy se fait interviewer par Charles Sabourdin sur Maven 3, 4, 5 et sur les builds reproductibles. Un grand merci à Charles pour son passage derrière le micro. Enregistré le 18 mars 2023 Téléchargement de l'épisode LesCastCodeurs-Episode–293.mp3 Interview Twitter Hervé Boutemy JChateau JavaDay Maven et son histoire Les builds reproductibles Les builds reproductibles sur la JVM Les builds reproductibles avec Maven 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/
undefined
Mar 20, 2023 • 1h 36min

LCC 292 - Enterprise Go Beans

Cet épisode nouvelles discute d'améliorations dans le JDK, d'Hibernate 6, de Service Weaver, de la fin d'options dans DockerHub pour certains projets open source, de Gradle, de cURL et pleins d'autres choses encore. Enregistré le 17 mars 2023 Téléchargement de l'épisode LesCastCodeurs-Episode–292.mp3 News Langages Quelle version de JDK utiliser en fonction des fonctionnalités que l'on souhaite utiliser mais aussi du long time support https://whichjdk.com/ JetBrains propose une formation Rust intégrée aux IDEs https://blog.jetbrains.com/rust/2023/02/21/learn-rust-with-jetbrains-ides/ Un apprentissage directement intégré à l'IDE Avec un plugin "Academy" dédié, qui rajoute un troisième panneau avec les instructions, les explications, et on fait des exercices dans la partie IDE Une chouette manière d'apprendre intégrée directement à son IDE Chacun doit pouvoir créer ses propres ressources d'apprentissage, et on pourrait appliquer ça à des frameworks, des outils, ou pourquoi pas son propre projet informatique ! Retravail de classes du JDK Bits / ByteArray vers un usage via VarHandle pour le swapping de bits dans Java 21 https://minborgsjavapot.blogspot.com/2023/01/java–21-performance-improvements.html petit changement mais utilisé par beaucoup de classes comme ObjectInputStream RandomAccessFile etc améliore la serialization en java Rajout de la notion de "sequenced collection" dans la hiérarchie des collections, planifié pour JDK 21 https://www.infoq.com/news/2023/03/collections-framework-makeover/ va permettre de codifier les collections qui ont un ordre donné (pas forcément trié) rajouter aussi des méthodes pour traverser des collections séquentielles à l'envers, ou pour récupérer ou ajouter un élément au début ou à la fin d'une collection ordonnée aujourd'hui ces methodes sont eparpillées dans les implémentaions et n'avaient aps de contrat commun Le guide ultime des virtual threads https://blog.rockthejvm.com/ultimate-guide-to-java-virtual-threads/ un très long article qui couvre le sujet des nouveaux virtual threads comment en créer comment ils fonctionnent le scheduler et le scheduling coopératif les "pinned" virtual threads (lorsqu'un thread virtuel est bloqué dans un vrai thread, par exemple dans un bloc synchronized ou lors d'appel de méthondes natives) les thread local et thread pools Librairies Quarkus 3 alpha 5 avec Hibernate ORM 6 et une nouvelle DevUI https://quarkus.io/blog/quarkus–3–0–0-alpha5-released/ passage d'Hibernate 5 a 6 (donc testez! switch de compatibilité supérieur pour aider la transition https://github.com/quarkusio/quarkus/wiki/Migration-Guide–3.0:-Hibernate-ORM–5-to–6-migration#database-orm-compatibility (DB interaction esp schema StatelessSession injectable Gradle 8 nouvelle DEvUI (nouveau look and feel, plus extensible pour els extensions et pplus facile a utiliser, va au dela des integrations d'extension (config etc) quarkus deploy dans la CLI, gradle et maven: deploie dans Kube, knative, OpenShift La route vers Quarkus 3, article sure infoq https://www.infoq.com/news/2023/03/road-quarkus–3/ Jakarta EE, ORM 6, Microprofile 6, virtual threads, io_uring, ReactiveStreams=> Flow io_uring reduit les copie de buffer entre userspace et kernel space pas de support JPMS en vue mais Red Hat contribue a project Leyden Camel extensions, attendez Camel 4 (passage Jakarta EE) Interview de Geert Bevin, l'auteur du framework Java RIFE2 https://devm.io/java/rife2-java-framework Google annouce Service Weaver https://opensource.googleblog.com/2023/03/introducing-service-weaver-framework-for-writing-distributed-applications.html EJB is back (Enterprise Go Beans :D) ecrire en tant que modular monolith permet au deploiement décider ce qui est distribué basé sur leur experience du surtout de maintance des microservices (contrats plus difficiles a casser - dbesoin de coordination de rollout etc) dans la communauté des entousiastes et des gens concernés par les 10 falaccies of distributed computing et le fait de cacher les appels distants EJB et corba avant cela ont été des échecs de ce point de vue la ils n'expliquement pas comment le binding de nouveax contrats et de deploiement se fait de maniere transparente des deployeurs implementables (go et GKE initialement) Etude d'opinion de certains utilisateurs de Jakarta EE (OmniFaces community) https://omnifish.ee/2023/03/10/jakarta-ee-survey–2022–2023-results/ biaisée donc attention Java EE 8 suivi par Jakarta EE 8 et derriere Jakarta EE 10 etc WildFly puis Payara puis glassfish ensuite tomee et JBoss EAP gens contents de leurs serverus d'app sand Weblogic et Websphere les api utilisées le plus JPA, CDI, REST, Faces, Servlet, Bean Validation, JTA, EJB, EL etc Produit microprofile: Quarkus puis WildFlky puis Open Liberty puis Payara et Helidon Dans microprofile: Config, rest client, open api, health et metric sont les plus utilisés Comment utiliser des records et Hibernate https://thorben-janssen.com/java-records-embeddables-hibernate/ pas en tant qu'entité encore (final, pas de constructeur vide) mais en tant qu'@Embeddable records sont immuable dans hibernate 6.2, c'est supporté par default (annoter le record @Embeddable Ca utilise le contrat EmbeddableIntentiator Cinq librairies Java super confortables https://tomaszs2.medium.com/5-amazingly-comfortable-java-libraries–887802e240de mapstruct mapper des entités en DTO jOOQ requête de bases de données typées WireMock mocker des API ou être entre le client et l'API pour ne mocker que certaines requêtes Eclipse Collections : pour rendre le code plus simple et facile à comprendre. Attention à la,surface d'attaque HikariCP connection pool rapide - agroal est dans la meme veine mais supporte JTA. C'est ce qui est dans Quarkus. Retour d'expérience sur Hibernate 6 https://www.jpa-buddy.com/blog/hibernate6-whats-new-and-why-its-important/ côté APIs et côté moteur jakarta persistence 3 ; java 11 annotations de types hibernate sont typesafe support des types JSON OOTB meilleur support des dates avec @TimeZoneStorage soit natif de la base soit avec une colonne séparée changement dans la génération des ID (changement cassant) mais stratégies de noms historique peut être activé Options autour de UUID (Time base et IP based) composite id n'ont plus besoin d'être serialisable type texte long supportés via @JdbcTypeCode multitenancy (shared schema, resolver de tenant a plugger) read by position (SQL plus court car sans alias, deserialisarion plus rapide, moins de joins dans certains cas) modele sous jacent commun entre HQL et l'api criteria et donc même moteur meilleure génération du SQL et plus de fonction SQL modernes réduisant le gap entre HQL et SQL ronctions analytiques et fenêtre quand la base les supportent graphe traverse en largeur plutôt qu'en profondeur (potentiellement plus de join donc bien mettre lazy sur vos associations) Cloud Docker supprime les organisations open source sur DockerHub https://blog.alexellis.io/docker-is-deleting-open-source-images/ Les projets open source risquent de devoir passer de 0 $ à 420 $ par an pour héberger leurs images Rétropédalage de Docker https://www.docker.com/blog/we-apologize-we-did-a-terrible-job-announcing-the-end-of-docker-free-teams/ Web Une base de connaissance sur le fonctionnement et les bonnes pratiques autour des WebHooks https://nordicapis.com/exploring-webooks-fyi-the-webhooks-knowledge-center/ Guillaume a refondu son blog https://glaforge.dev/ Cette fois ci, c'est un site web statique, généré avec Hugo, avec des articles en Markdown, hébergé sur Github Pages, buildé / publié automatiquement par Github Actions Outillage Gradle 8.0 est sorti https://docs.gradle.org/8.0/release-notes.html Une CLI connectée à OpenAI's Davinci model pour générer vos lignes de commandes https://github.com/TheR1D/shell_gpt sgpt -se "start nginx using docker, forward 443 and 80 port, mount current folder with index.html" -> docker run -d -p 443:443 -p 80:80 -v $(pwd):/usr/share/nginx/html nginx -> Execute shell command? [y/N]: y Un petit outil en ligne basé sur le modèle GPT–3 qui permet d'expliquer un bout de code https://whatdoesthiscodedo.com/g/db97d13 Copiez-collez un bout de code de moins de 1000 caractères, et le modèle de code de GPT–3, et l'outil vous explique ce que fait ces quelques lignes de code Assez impressionnant quand on pense que c'est un modèle de prédiction probabiliste des prochains caractères logiques Certaines réponses donnent vraiment l'impression parfois que l'outil comprends réellement l'intention du développeur derrière ce bout de code Git: Comment rebaser des branches en cascade https://adamj.eu/tech/2022/10/15/how-to-rebase-stacked-git-branches/ native-image va être inclu dans la prochaine version de GraalVM JDK. Plus besoin de gu install native-image https://github.com/oracle/graal/pull/5995 Si vous utilisez l'outil Mermaid pour faire des graphes d'architecture, d'interactions, etc, il y a un petit cheatsheet sympa qui montre comment faire certains diagrammes https://jojozhuang.github.io/tutorial/mermaid-cheat-sheet/ Un site avec plein de trucs et astuces sur psql, le langage SQL de PostgreSQL https://psql-tips.org/ CURL a 25 ans ! https://daniel.haxx.se/blog/2023/03/10/curl–25-years-online-celebration/ Son créateur, Daniel Stenberg, est toujours à la tête du projet cURL est utilisé dans d'innombrables projets par défaut dans plein de systèmes d'exploitation Cédric Champeau explique le concept de version catalog de Gradle et comment il améliore la productivité https://melix.github.io/blog//2023/03–12-micronaut-catalogs.html permet de réduire le temps et l'effort nécessaire à gérer la version de ses dépendances apport aussi plus de sécurité, de flexibilité, pour s'assurer qu'on a les bonnes versions les plus récentes des dépendances et qu'elles fonctionnent bien entre elles Architecture La pyramide des besoins du code de qualité https://www.fabianzeindl.com/posts/the-codequality-pyramid le bas de la pyramide supporte le haut performance de build performance de test testabilité qualité des codes de composants fonctionalités performance du code pour chaque bloc, il explique les raisons, ses definitions et des astuces pour l'ameliorer par exemples les fonctionalites changent et donc build, testabilité et qualite de code permet des changements légers en cas de changement dans les fonctionalités perf viennent ensuite ("premature opt, root of all evil), regader des besoins globaux Méthodologies Le DevSusOps est né https://www.infoq.com/news/2023/02/sustainability-develop-operation/?utm_campaign=i[…]nt&utm_source=twitter&utm_medium=feed&utm_term=culture-methods bon serieusement, comment on couvre avec un nom pareil sans déraper :man-facepalming: ah dommage Micreosoft rejoints la FinOps foundation https://www.infoq.com/news/2023/02/microsoft-joins-finops-org/?utm_campaign=infoq_content&utm_source=twitter&utm_medium=feed&utm_term=Cloud Imagine si ils avaient rejoint la DevSusOps fondation Sécurité Plein de choses qu'on peut faire avec des Yubikeys https://debugging.works/blog/yubikey-cheatsheet/ Pour générer des time-based one-time passwords, pour l'accès SSH,, pour sécuriser un base Keepass, comme 2FA pour le chiffrement de disque, pour la vérification d'identifiant personnel, pour gérer les clés privées… Loi, société et organisation Le fabricant de graveurs de CPU hollandais ASML se voit interdire d'exporter ses technologies vers la chine https://www-lemagit-fr.cdn.ampproject.org/c/s/www.lemagit.fr/actualites/365532284/Processeurs[…]le-escalade-dans-les-sanctions-contre-la-Chine?amp=1 en tous cas les technologies de gravure des deux dernières generations de la pression commerciale on passe au registre d'exclusion par decision militaire ASML s'était fait espionner récemment CAnon et Sony aussi dans la restriction Meta supprime de nouveau 10000 emplois soit 25% au total depuis la fin de l'année dernière https://www.lesechos.fr/tech-medias/hightech/meta-va-supprimer–10000-postes-de-plus–1915528 Rubrique débutant Bouger les éléments d'une liste https://www.baeldung.com/java-arraylist-move-items discute le concept d'array list en dessous et donc le coût d'insérer au milieu decouverte de Collections.swap (pour intervertir deux elements) decouverte de Collections.rotate pour "deplacer" l'index zero de la liste Conférences La liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs : 15–18 mars 2023 : JChateau - Cheverny in the Châteaux of the Loire Valley (France) 23–24 mars 2023 : SymfonyLive Paris - Paris (France) 23–24 mars 2023 : Agile Niort - Niort (France) 30 mars 2023 : Archilocus - Online (France) 31 mars 2023–1 avril 2023 : Agile Games France - Grenoble (France) 1–2 avril 2023 : JdLL - Lyon 3e (France) 4 avril 2023 : AWS Summit Paris - Paris (France) 4 avril 2023 : Lyon Craft - Lyon (France) 5–7 avril 2023 : FIC - Lille Grand Palais (France) 12–14 avril 2023 : Devoxx France - Paris (France) 20 avril 2023 : WordPress Contributor Day - Paris (France) 20–21 avril 2023 : Toulouse Hacking Convention 2023 - Toulouse (France) 21 avril 2023 : WordCamp Paris - Paris (France) 27–28 avril 2023 : AndroidMakers by droidcon - Montrouge (France) 4–6 mai 2023 : Devoxx Greece - Athens (Greece) 10–12 mai 2023 : Devoxx UK - London (UK) 11 mai 2023 : A11yParis - Paris (France) 12 mai 2023 : AFUP Day - lle & Lyon (France) 12 mai 2023 : SoCraTes Rennes - Rennes (France) 25–26 mai 2023 : Newcrafts Paris - Paris (France) 26 mai 2023 : Devfest Lille - Lille (France) 27 mai 2023 : Polycloud - Montpellier (France) 31 mai 2023–2 juin 2023 : Devoxx Poland - Krakow (Poland) 31 mai 2023–2 juin 2023 : Web2Day - Nantes (France) 1 juin 2023 : Javaday - Paris (France) 1 juin 2023 : WAX - Aix-en-Provence (France) 2–3 juin 2023 : Sud Web - Toulouse (France) 7 juin 2023 : Serverless Days Paris - Paris (France) 15–16 juin 2023 : Le Camping des Speakers - Baden (France) 20 juin 2023 : Mobilis in Mobile - Nantes (France) 20 juin 2023 : Cloud Est - Villeurbanne (France) 21–23 juin 2023 : Rencontres R - Avignon (France) 28–30 juin 2023 : Breizh Camp - Rennes (France) 29–30 juin 2023 : Sunny Tech - Montpellier (France) 29–30 juin 2023 : Agi'Lille - Lille (France) 8 septembre 2023 : JUG Summer Camp - La Rochelle (France) 19 septembre 2023 : Salon de la Data Nantes - Nantes (France) & Online 21–22 septembre 2023 : API Platform Conference - Lille (France) & Online 25–26 septembre 2023 : BIG DATA & AI PARIS 2023 - Paris (France) 28–30 septembre 2023 : Paris Web - Paris (France) 2–6 octobre 2023 : Devoxx Belgium - Antwerp (Belgium) 10–12 octobre 2023 : Devoxx Morroco - Agadir (Morroco) 12 octobre 2023 : Cloud Nord - Lille (France) 12–13 octobre 2023 : Volcamp 2023 - Clermont-Ferrand (France) 12–13 octobre 2023 : Forum PHP 2023 - Marne-la-Vallée (France) 19–20 octobre 2023 : DevFest Nantes - Nantes (France) 10 novembre 2023 : BDX I/O - Bordeaux (France) 6–7 décembre 2023 : Open Source Experience - Paris (France) 31 janvier 2024–3 février 2024 : SnowCamp - Grenoble (France) 1–3 février 2024 : SnowCamp - Grenoble (France) 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/
undefined
Feb 13, 2023 • 1h 40min

LCC 291 - ChatGPT licencie 15% des bisounours

Antonio, Guillaume et Emmanuel discutent de licence Oracle pour Oracle JDK, de JEPs, de Flutter, d'Hibernate, de Mokito, de Kafka, de (not so) Big Data, du parsing de YAML, de ChatGPT, de licenciements, de platform engineering, et de nombres flottants. Enregistré le 10 février 2023 Téléchargement de l'épisode LesCastCodeurs-Episode–291.mp3 News Langages Oracle a changé une des licences de Oracle Java https://redresscompliance.com/oracle-java-licensing-changes-explaned-free/ plus d'utilisateurs nommé mais basé sur tous les employés et même les employés de vos soustraitant Bref, ca va faire cher et si vous itulisez plus de 50k processeurs, vous payez en plus Un autre article d'IDC https://blogs.idc.com/2023/01/30/oracle-java-subscription-changes-what-is-the-impact-to-customers/ Message a caractère informatif: il y a d'autres distributions de OpenJDK supportées de différents vendeurs ; ou la version non supportée InfoQ fait un résumé des dernières nouvelles Java, les mises à jour sur les JEPs, les dernières releases https://www.infoq.com/news/2023/01/java-news-roundup-jan23–2023/ sur Java specificquement des mises à jour de drafts autour du projet amber (primitive types in patterns etc) Une JEP pour discuter du future process des JEP (evolutions) JDK 20 en rampdown phase avec en nouvelles features: scoped values, record patterms, pattern matching for switches, virtual threads, structured concurrency - toutes en incubation ou preview https://www.infoq.com/news/2023/02/java-news-roundup-jan30–2023/ Le framework RIFE fait son grand retour ! Sortie de Go 1.20 https://go.dev/doc/go1.20 mais pas de gros changements, juste des améliorations de la toolchain, des librairies… Recap de la conférence Flutter Forward 2023 https://medium.com/@flutterqueen/flutter-forward–2023-recap–8f6da4876e3 Annonces de Flutter 3.7 et Dart 2.19 Amélioration de la performance graphique (utilisation de Impeller au lieu de Skia) Layout adaptatif Barres et sous-barres de menu Validation de release iOS Support de Material 3 Nouveaux widgets Support de ses propres shaders Facilitation de l'intégration native avec FFIgen et JNIgen Support de la 3D Support de WebAssembly Support de RISC-V Possibilité d'intégrer une app Flutter comme un élément HTML dans un page HTML Un toolkit spécifique pour les applis de News Côté langage Dart, il devrait bientôt y avoir du pattern matching Librairies Les bonnes pratiques d'accessibilité pour les applications en Flutter https://medium.com/flutter-community/creating-inclusive-apps-with-flutter-best-practices-for-accessibility-c7cebe0beb4d 4 grands thèmes dans l'article : l'accessibilité dans Flutter, les fonctionnalités intégrées à Flutter pour l'accessibilité, les meilleurs pratiques pour rendre les apps Flutter accessibles, et tester / débugguer l'accessibilité Flutter supporte le text contrast, les screen readers, les labels sémantiques, l'utilisation au clavier Comment logger les requetes Hibernate ORM https://www.adeliosys.fr/articles/hibernate-monitoring/ log brut via un logger les requetes lentes (plus lentes que n millisecondes) les metriques plus avancées (Statement, requetes, temps acquisition de connections, cache) Exposable via JMX le pool de connexion Sortie de Mockito 5, avec la possibilité de mocker des constructeurs, des méthodes statiques et des classes finales https://www.infoq.com/news/2023/01/mockito–5/ avant, c'était déjà possible de le faire avec mockito-inline mais maintenant c'est "out of the box" la version Java minimale passe de Java 8 à Java 11 Cloud Kubernetes Java client ajouté le support de kubernetes 1.25 https://www.infoq.com/news/2023/01/kubernetes-java-client/?utm_campaign=infoq_content&utm_source=twitter&utm_medium=feed&utm_term=java ajout d'APIs dynamique pour faire du monitoring générique L'article montre l'API utilisée en alternative a certaines commandes kubectl fabric8 est une alternative Data Big data est mort https://motherduck.com/blog/big-data-is-dead/ fondateur de BigQuery Puis regardé comment les utiilsateurs utilisaent Big Query Et pas un probleme de big data Retour des moteurs classiques MySQL / PostgreSQL vs MongoDB etc la plupart des utilisaeur de big query etaient sous les 1Tb et 50% at 100GB ou moins doncle deluge de données n'est pas arrivé le shift moderne c'est de detacher le stockage du compute les données grossissent plus vite que les besoin en compute sur ces données la taille du workload est sur un petit sous ensemble de la taille des données entiéres (90% des requetes bigquery sont sur 100M de données) bases de données modernes sont force a travailler sur un sous ensemble des données pression pour scocker moins de données sur les equipes données sont requetees dans la journée, dans la semaine et ensuite rarement touchées donc big data = whatever doesn't fit on a single machine, est de moins en moins vrai map reduce en 2004 et machines de maintenant entre 2 et 4 ordre de grandeurs de RAM en plus avant on se foutait de supprimer des données mais GDPR et responsabilité pénales change la donne data putrefaction comme le bit rot questionnaire pour savoir si les prochaines generations de data processing seront suffisant pour vous distribution est une raison par contre Outillage Tous les soucis avec YAML https://ruudvanasseldonk.com/2023/01/11/the-yaml-document-from-hell article qui explique la complexité de YAML et ses incohérences Comparaison a la simplicité de JSON les commentaires JSON enlevés en 2005 parce que les gens mettaient des meta instructions pour les parseurs et l'implementation des commentaire était très complexe 22:22 est une nombre en base 60 vs 80:80 qui ne l'est pas (enleve en YAML 1.2 - **.png est invalide, ** est une reference vers une ancre - !.git est parsé différemment par les parseurs: ! est une echape pour exprimer un type natif du langage (e.g. Java) - ca veut dire que charger un YAML inconnu est non sûr - fr - de - no retourne ["fr", "de", no] le problème Norvège | changé en tre YAML 1./1 et 1.2 mais l;es parseurs gardent les anciens comportements:. Boolean: on, yes, y on: "let's go" est convertit en { "True": "let's go" } parce que on est boolean et accepté en clé non String dans YAML version: [ 9.5.1, 12.13] -> { "version": [ "9.5.1", 12,13 ] } les chiffres non echapé par un guillement syntax highlighting est donc dependant les templates dans yaml ca court a la cata altewrnatives: TOML, JSON, sous ensemble de YAML (toujours quoter les chaines) ChatGPT, on lui attribue plus de magie qu'il n'en a https://arxiv.org/pdf/2212.03551.pdf un article scientifique mais de 8 pages seulement ChatGPT entant que large language models (LLM) et un prompt Engineering au dessus (le conversational agent) ChatGPT c'est une exécution du modèle Next Token Prediction C'est de la statistique brute mais excrément versatile dans ses usages Tendance à anthropomorphismes parce qu'on a passé la sensation de uncanny valley Considérant la distribution statistique des mots du corpus public, quels mots ont le plus de chance de venir après Pas de relation au monde, aux objets et aux interactions d'êtres partageant le même langage Pas des faits, ChatGPT ne sait pas, n'a pas d'intention C'est donc un outil génial pour éliminer un paquet du bullshit work de tous les jours, pas les gens qui le font Est-ce que les capacités sont émergentes ? LLM fondamentalement est hors du concept Le méta tutoriel sur le parsing avec Antlr https://tomassetti.me/antlr-mega-tutorial/ Couvre différents langages don't Java, Python, JavaScript et C# Explique les différentes phases de lexing, de parsing Comment résoudre les ambiguïtés avec les prédicats sémantiques Comment transformer du code Comment tester son parseur Et autre trucs et astuces Un tutoriel sur comment releaser un module Java avec Maven, JReleaser et Github Actions https://foojay.io/today/how-to-release-a-java-module-with-jreleaser-to-maven-central-with-github-actions/ montre le setup necessaire (clé GPG, pripriété du groupid, config maven etc montre comment faire la release à la main comment l'automatiser via GitHub actions Un tutoriel expliquant comment utiliser CRaC pour vos applis Java dans un conteneur https://foojay.io/today/how-to-run-a-java-application-with-crac-in-a-docker-container/ Coordinated Restore at Checkpoint (développé par Azul) Permet de créer des snapshots d'une application Java Pour qu'elle puisse être relancée rapidement après son démarrage, son warmup Une intro à Kafka en français https://blog.octo.com/kafka-repond-il-a-mon-besoin/ Maven 3.9 sorti https://lists.apache.org/thread/0tfr7t2j2ddbv4gjvxm47yohtk3dg6b3 https://maven.apache.org/docs/3.9.0/release-notes.html Java 8 nécessaire pour lancer Maven Pas mal de nettoyage de code et de dépendances pour préparer Maven 4. Certains plugins mal conçus (ex: qui ne déclare pas la dep plexus-util) peuvent être incompatibles. .mvn/maven.config dit désormais avoir 1 arg par ligne Maven avertit maintenant sur l'utilisation de plugins obsolètes, objectifs, paramètres, etc. Ajout de la prise en charge de l'invocation « mvn pluginPrefix:version:goal » et mise à jour des logs (pour simplifier le copier/coller). Ajout d'activation de profil par packaging. Maven 3.9.0 est désormais entièrement compatible avec la nouvelle ligne 3.x d'installation et de déploiement de plugins (les versions précédentes préviennent à ce sujet). Ajout du support du repo local partagé - https://maven.apache.org/resolver/local-repository.html#shared-access-to-local-repository Ajout de la possibilité de splitter le repo local (releases, vs snapshots…) et possibilité de gérer des workspaces - https://maven.apache.org/resolver/local-repository.html#split-local-repository Filtrage des dependences par repository - https://maven.apache.org/resolver/remote-repository-filtering.html Chained local repository (pour l'isolation entre "outer" and "inner" builds) - https://issues.apache.org/jira/browse/MNG–7612 Attention: Il y aurait une regression (10%) sur les perfs de gros projets - https://issues.apache.org/jira/browse/MNG–7677 Les bisounours Méthodologies De operation engineering vers platform engineering https://www.infoq.com/news/2022/10/platform-devops-summary/ et quand le sysadmin devient de nouveau sexy grosse tendance et beaucoup de discussions autour du la platform engineering une plateforme imposée aux devs mais sexy donc c'est bon cette fois: plus serieusement customer focus - la fameuse developer experience Requilibrage entre dev vs ops puis devops plat et maintenant ceci. Sans enlever devops car devops amene une charge mentale lourde objectif developper la "core business value" et donc supporter cela avec une Internal DEveloper Platform Backstage est la GUI au dessus mais une IDP est plus profonde Infra <-> Platform <-> dev teams IDP: ne pas avoir a faire tourner l'infra (pour une equipe dev metier) Et cela permet d'ajouter des controles "entreprise": cout, gouvernance etc C'est un pendule qui se reequilibre, mais n'oublions pas que les devs aime le jeu, comme les otaries. Pas pisser du code metier le plus vite possible. Est-ce que les IDP seront populaires, c'est la grande question un contre point dans l'articl;e: IDP are expensive and hard to do, offer a mediocre service at best, destroy velocity, and create bad incentives lié a la notion de golden path Sécurité Une liste de binaires Unix qui peuvent être utilisés pour bypasser des systèmes malconfigurés https://gtfobins.github.io/ apparemment même des images type distroless peuvent être affectées risques potentiels : accès à un shell, des privilèges élevés, transférer des fichiers, etc. Loi, société et organisation Twitter desactive l'API pour les clients qui n'affichent pas les pubs de Twitter (comme Tweetbot https://twitter.com/tweetbot/status/1613763746437947394) et paf le support de twitter sur ton ordi Ola Bini déclaré innocent https://peoplesdispatch.org/2023/02/01/digital-rights-activist-ola-bini-declared-innocent-by-ecuadorian-court Arrété en 2019 en Equateur Accusé d'avoir eu access à des ordinateurs et des systemes de communication En même temps que Julian Assange était renvoyé de l'ambassage Equatorienne de Londres Il a fait 70 jours de prison Google a viré son équipe Open Source https://www.infoworld.com/article/3686511/google-blew-it-with-open-source-layoffs.html gros efforts autour de l'open sourcing (Kubernetes, Tensor flow) paie des dividendes viré par les tetes de gondoles mais ceux qui avaient fait des différences Open Source program, Google Summer of Code Grosse influeence interne qui se perd, risque pour le futur ca reste l'opinion de Matt Asay ( :stuck_out_tongue_winking_eye: ) Dans la saga Twitter, après l'arrêt des clients Twitter tiers, maintenant l'accès même à l'API va devenir payant https://twitter.com/twitterdev/status/1621026986784337922 donc par exemple, on ne pourra même plus créer des bots gratuitement, comme faire des annonces automatiques de release, etc ah bah merde c'est ce que je fais pour les cast codeurs :/ On peut rajouter son Mastodon sur son profil Github https://github.blog/changelog/2023–02–02-add-more-social-links-to-your-user-profile/ Pratique pour la vérification Mastodon ! On pouvait seulement mettre un lien vers Twitter, maintenant on peut avoir plusieurs profils de médias sociaux différents Rubrique débutant Julia Evans a écrit deux articles intéressants sur les problèmes avec les nombres flottants et avec les nombres entiers https://jvns.ca/blog/2023/01/13/examples-of-floating-point-problems/ https://jvns.ca/blog/2023/01/18/examples-of-problems-with-integers/ les problèmes classiques d'overflow le grand écart entre les grands nombres flottants des cas concrets de valeur approchée (proche à epsilon près), ou avec JavaScript qui interprète les entiers comme des flottants et du coup interprète mal des grands ID en JSON des clés primaires trop petites, les bizarreries de l'encodage des nombres signés ou non Quels sont les types de mémoires dans la JVM ? https://www.baeldung.com/java-jvm-memory-types Heap Stack Native Direct je pense que l'article a des incoherences, Ent ous cas native vs direct est mal expliqué. Un truc pas super clair mais plus clair est ici sur native vs direct: https://stackoverflow.com/questions/30622818/what-is-the-difference-between-off-heap-native-heap-direct-memory-and-native-m c'est en gros direct vers du hardware (IO/ network etc) memory mapped file permet d'aller au dela de la limit e de memoire vive du systeme Conférences La liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs : 9–11 février 2023 : World AI Cannes Festival - Cannes (France) 16–19 février 2023 : PyConFR - Bordeaux (France) 7 mars 2023 : Kubernetes Community Days France - Paris (France) 15–18 mars 2023 : JChateau - Cheverny in the Châteaux of the Loire Valley (France) 23–24 mars 2023 : SymfonyLive Paris - Paris (France) 23–24 mars 2023 : Agile Niort - Niort (France) 30 mars 2023 : Archilocus - Online (France) 31 mars 2023–1 avril 2023 : Agile Games France - Grenoble (France) 1–2 avril 2023 : JdLL - Lyon 3e (France) 4 avril 2023 : AWS Summit Paris - Paris (France) 5–7 avril 2023 : FIC - Lille Grand Palais (France) 12–14 avril 2023 : Devoxx France - Paris (France) 20–21 avril 2023 : Toulouse Hacking Convention 2023 - Toulouse (France) 27–28 avril 2023 : AndroidMakers by droidcon - Montrouge (France) 4–6 mai 2023 : Devoxx Greece - Athens (Greece) 10–12 mai 2023 : Devoxx UK - London (UK) 12 mai 2023 : AFUP Day - lle & Lyon (France) 25–26 mai 2023 : Newcrafts Paris - Paris (France) 26 mai 2023 : Devfest Lille - Lille (France) 27 mai 2023 : Polycloud - Montpellier (France) 31 mai 2023–2 juin 2023 : Devoxx Poland - Krakow (Poland) 31 mai 2023–2 juin 2023 : Web2Day - Nantes (France) 1 juin 2023 : Javaday - Paris (France) 1 juin 2023 : WAX - Aix-en-Provence (France) 7 juin 2023 : Serverless Days Paris - Paris (France) 15–16 juin 2023 : Le Camping des Speakers - Baden (France) 29–30 juin 2023 : Sunny Tech - Montpellier (France) 8 septembre 2023 : JUG Summer Camp - La Rochelle (France) 19 septembre 2023 : Salon de la Data Nantes - Nantes (France) & Online 21–22 septembre 2023 : API Platform Conference - Lille (France) & Online 2–6 octobre 2023 : Devoxx Belgium - Antwerp (Belgium) 12 octobre 2023 : Cloud Nord - Lille (France) 12–13 octobre 2023 : Volcamp 2023 - Clermont-Ferrand (France) 6–7 décembre 2023 : Open Source Experience - Paris (France) 31 janvier 2024–3 février 2024 : SnowCamp - Grenoble (France) 1–3 février 2024 : SnowCamp - Grenoble (France) 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/
undefined
Jan 14, 2023 • 1h 16min

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://arxiv.org/pdf/2212.03551.pdf Github rajoute le scan des secrets dans vos répos publics aussi https://github.blog/2022–12–15-leaked-a-secret-check-your-github-alerts-for-free/ ce n'est plus seulement pour les organisations des entreprises aussi accessible pour les répos publics permet d'éviter de leaker des clés d'API et autre Les nouveautés de Java sur Visual Studio Code https://foojay.io/today/java-on-visual-studio-code-update-december–2022/ amélioration visuelles pour les extensions Spring Boot et aussi pour la visualisation de la mémoire utilisée complétion "post-fix" comme dans IntelliJ plus de raccourcis pour générer du code support de Lombok intégré support de l'annotation processing de Gradle meilleure visualisation des erreurs de build 2 millions de développeurs utilisent Visual Studio Code pour Java Encore un guide pour sortir de Vi https://thevaluable.dev/vim-advanced/ Le client HTTP de IntelliJ peut maintenant être utilisé en ligne de commande et dans un environnement d'intégration continue https://blog.jetbrains.com/idea/2022/12/http-client-cli-run-requests-and-tests-on-ci/ Architecture L'évolution du rôle de l'architecte https://www.infoq.com/articles/architecture-architecting-role/ Le (très long) rapport des tendances 2023 par Didier Girard et Olivier Rafal https://www.linkedin.com/pulse/rapport-tendances–2023-didier-girard/?trackingId=wu9pJ4wNQAOKjh11R2UyjA%3D%3D un prisme tech/orga/culture pour préparer l'entreprise aux enjeux un prisme produits/plateformes/data pour structurer notre approche d'un SI moderne. couvre des tonnes de sujets de l'intelligence artificielle, les données, le cloud, le web1/2/3, mais aussi l'organisation des équipes, les rôles, etc. Loi, société et organisation Twitter n'apprécie guère Mastodon, et bride les tweets avec des liens vers Mastodon. La liberté d'expression façon Elon Musk ! https://twitter.com/bluxte/status/1603656787097534464 Statement de Mastodon sur le fait que Twitter bannit les liens vers Mastodon https://blog.joinmastodon.org/2022/12/twitter-suspends-mastodon-account-prevents-sharing-links/ Et finalement Twitter est revenu en arrière sur son changement des conditions d'utilisation Dans la famille "les informaticiens ont des supers passions", je voudrais Cédric Champeau, qui nous fait une magnifique rétrospective de ces clichés d'astrophotographie https://melix.github.io/blog//2022/12/astrophoto–2022.html Conférences La liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs : 19 janvier 2023 : Archilocus - Bordeaux (France) 19–20 janvier 2023 : Touraine Tech - Tours (France) 25–28 janvier 2023 : SnowCamp - Grenoble (France) 31 janvier 2023 : Duck Conf - Paris (France) 2 février 2023 : Very Tech Trip - Paris (France) 2 février 2023 : AgiLeMans - Le Mans (France) 9–11 février 2023 : World AI Cannes Festival - Cannes (France) 16–19 février 2023 : PyConFR - Bordeaux (France) 7 mars 2023 : Kubernetes Community Days France - Paris (France) 23–24 mars 2023 : SymfonyLive Paris - Paris (France) 23–24 mars 2023 : Agile Niort - Niort (France) 1–2 avril 2023 : JdLL - Lyon 3e (France) 5–7 avril 2023 : FIC - Lille Grand Palais (France) 12–14 avril 2023 : Devoxx France - Paris (France) 20–21 avril 2023 : Toulouse Hacking Convention 2023 - Toulouse (France) 4–6 mai 2023 : Devoxx Greece - Athens (Greece) 10–12 mai 2023 : Devoxx UK - London (UK) 12 mai 2023 : AFUP Day - lle & Lyon (France) 25–26 mai 2023 : Newcrafts Paris - Paris (France) 26 mai 2023 : Devfest Lille - Lille (France) 27 mai 2023 : Polycloud - Montpellier (France) 7 juin 2023 : Serverless Days Paris - Paris (France) 15–16 juin 2023 : Le Camping des Speakers - Baden (France) 29–30 juin 2023 : Sunny Tech - Montpellier (France) 19 septembre 2023 : Salon de la Data Nantes - Nantes (France) & Online 21–22 septembre 2023 : API Platform Conference - Lille (France) & Online 2–6 octobre 2023 : Devoxx Belgium - Antwerp (Belgium) 12 octobre 2023 : Cloud Nord - Lille (France) 12–13 octobre 2023 : Volcamp 2023 - Clermont-Ferrand (France) 6–7 décembre 2023 : Open Source Experience - Paris (France) 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/
undefined
Dec 10, 2022 • 1h 32min

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-part–1–93758b253f47 de Wix Trois patterns dans cet article Consume and project : vue dematerialisee copie des données chaudes consommées par beaucoup. Et ces vues sont focalisées sur un consommateur. Kafka et CDC au milieu pour découpler Event driven de bout en bout : websocket utilise pour envoyer les demandes. Le web stocket serveur copie dans Kafka. Ces consommateurs font le job et un message est envoyé via le web socket serveur. Résilience, découplage K/V store: et en m'articuler avec kafka qui permet d'être consommé en k/v basse latence et en consommation d'évènement Peut être intéressant mais pas si simple a comprendre les usage dans cet article Méthodologies Un article sur quoi et pourquoi le DevOps (en fait englobant les bonnes pratiques du moment) https://enix.io/fr/blog/devops-benefices-difficultes/ les tech ne vont pas apprendre grand chose mais c'est un article pour les managers ou plutot les execs pour les aider à voir la valeur souvent plus facile de montrer la valeur par du contenu exterieur a l'entreprise percu comme neutre autres articles sur Kubernetes pour les execs https://enix.io/fr/blog/kubernetes-benefices-difficultes/ Amazon et la methode "working backwards" pour un produit https://www.productplan.com/glossary/working-backward-amazon-method/ imagine le produit pret a etre releasé ecrire la press release evaluer l'opportunité (doit-on le construire) découvrir les solution pour le faire et avoir l'appriobation des décideurs construire la roadmap construire le backlog Sécurité 1.5 million de lignes de code dans Android sont maintenant en Rust https://security.googleblog.com/2022/12/memory-safe-languages-in-android–13.html?m=1 de plus en plus de code memory safe (Java, Kotlin, Rust) Mais la majorité de nouveau code reste quand meme Java et C++ Et une correlation de baisse de vulnerabilités liées a la sureté de mémoire (moins de code de programme memory unsafe) Ou maturation du code avec moins de vuln? Autres efforts: outils de securisation de la memoire en C/C++, fuzzing Zero vuln memoire dans le code rust en 2 ans et en moyenne 1 / kLOC dans le code historique) Java -> JNI, Rust - unsafe {} pour les accès resource Loi, société et organisation Les dinosaures de la tech commencent à 40 ans? https://www.linkedin.com/pulse/non-nous-ne-sommes-pas-des-dinosaures-de-la-tech-pass%C3%A9-ramade/ Commentaire intéressant de Benjamin Marron qui explique "s'être restreint aux technos de son coeur d'activité car trop de veille technologique hétérogène l'avait épuisé et avait renforcé son sentiment d'être complètement obsolète et dépassé" https://twitter.com/bmarron/status/1596136098828148736 âge median des devs entre 28 et 31 ans chez Google ms Facebook Mais 50 ans c'est 30% de la force de travail Avantages seniors Expérience Mentorat (comm, interaction interpersonnelle, (atlassian un 40 ans dans chaque équipe rétention Moins de changement de travail tous les 3 ans Flexibilité : les vieux ont leurs enfants partis Aide à faire des produites pour les personnes de même âge pas souvent dans les politiques de DE&I GitHub copilot menacé par un procès https://www.infoq.com/news/2022/11/lawsuit-github-copilot/?utm_source=twitter&utm_medium=link&utm_campaign=calendar aux États Unis Class action contre copilot GitHub, ms et OpenAI Violation de copyright et notamment des licenses open source Hypothèse est que humain ou AI, même responsabilité face à la license Discussion autour de fair use vs rupture de contrat DMCA etc Piratage de logiciel à une échelle sans précédant Pour avoir des conséquences fortes sur l'IA et son utilisation des sources ouvertes pour construire du contenu Et Antonio va devoir recorder à la main Rubrique débutant Différentes méthodes d'interpolation des chaines en Java https://www.baeldung.com/java-string-interpolation la concatenation avec + la methode format() souvent intimidante mais plus optimisée et sure StringBuilder le plus flexible notamment dans les cas de if et autre variations mais moins sur que format. et plus rapide MessageFormat pour les chaines de caractère utilisateur (multi langage) Apache Commons (pas sur qu'il y ait beaucoup d'usage dans les JDK modernes Conférences La liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs : 1 décembre 2022 : Devops DDay #7 - Marseille (France) 2 décembre 2022 : BDX I/O - Bordeaux (France) 2 décembre 2022 : DevFest Dijon 2022 - Dijon (France) 14–16 décembre 2022 : API Days Paris - Paris (France) & Online 15–16 décembre 2022 : Agile Tour Rennes - Rennes (France) 19 janvier 2023 : Archilocus - Bordeaux (France) 19–20 janvier 2023 : Touraine Tech - Tours (France) 25–28 janvier 2023 : SnowCamp - Grenoble (France) 2 février 2023 : Very Tech Trip - Paris (France) 2 février 2023 : AgiLeMans - Le Mans (France) 9–11 février 2023 : World AI Cannes - Cannes (France) 16–19 février 2023 : PyConFR - Bordeaux (France) 7 mars 2023 : Kubernetes Community Days France - Paris (France) 23–24 mars 2023 : SymfonyLive Paris - Paris (France) 23–24 mars 2023 : Agile Niort - Niort (France) 1–2 avril 2023 : JdLL - Lyon 3e (France) 5–7 avril 2023 : FIC - Lille Grand Palais (France) 12–14 avril 2023 : Devoxx France - Paris (France) 10–12 mai 2023 : Devoxx UK - London (UK) 12 mai 2023 : AFUP Day Lille & Lyon (France) 25–26 mai 2023 : Newcrafts Paris - Paris (France) 29–30 juin 2023 : Sunny Tech - Montpellier (France) 12–13 octobre 2023 : Volcamp 2023 - Clermont Ferrand (France) 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/

The AI-powered Podcast Player

Save insights by tapping your headphones, chat with episodes, discover the best highlights - and more!
App store bannerPlay store banner
Get the app