Published: Jan. 15, 2024, 9:11 a.m.
Cet \xe9pisode news discute de langages, de biblioth\xe8ques, d\u2019intelligence artificielle bien s\xfbr et m\xeame de Web. Et puis de challenge Java et m\xeame de P\xe8re No\xebl !
Enregistr\xe9 le 12 janvier 2024
T\xe9l\xe9chargement de l\u2019\xe9pisode LesCastCodeurs-Episode-305.mp3
News
RIP Niklaus Wirth https://en.wikipedia.org/wiki/Niklaus_Wirth
- Informaticien Suisse
- Conception des langages ALGOL, Modula-2 et\u2026 Pascal
- Plusieurs distinctions: Turing 1984, John Von Neumann 1994. Depuis 1987 un prix cr\xe9\xe9 \xe0 son honneur
- Plusieurs livres dont Algorithms + Data Structures = Programs 1976
- La Loi de Wirth: La beaut\xe9 d\u2019un programme r\xe9side dans la clart\xe9 de sa structure. Niklaus Wirth a toujours pr\xf4n\xe9 la simplicit\xe9, la lisibilit\xe9 et la compr\xe9hensibilit\xe9. Approche pragmatique
https://recording.zencastr.com/lescastcodeurs/news-305
Langages
L\u2019enfer sur terre: equals and hashCode pour les entit\xe9es JPA. Tout le monde a un avis, faire le sien est compliqu\xe9 - https://vladmihalcea.com/hibernate-facts-equals-and-hashcode/ - https://vladmihalcea.com/how-to-implement-equals-and-hashcode-using-the-jpa-entity-identifier/ - https://vladmihalcea.com/the-best-way-to-implement-equals-hashcode-and-tostring-with-jpa-and-hibernate/ - https://jpa-buddy.com/blog/hopefully-the-final-article-about-equals-and-hashcode-for-jpa-entities-with-db-generated-ids/
Kotlin va t\u2019il d\xe9clin\xe9 en 2025, faute d\u2019innovation et avec les nouvelles features de Java ? https://shiftmag.dev/kotlin-vs-java-2392/
- Selon l\u2019auteur, d\u2019autres langages alternatifs pour la JVM ont d\xe9clin\xe9, comme Groovy et Scala
- L\u2019auteur pense qu\u2019il y aura de moins en moins de diff\xe9renciants par rapport \xe0 Java, et Kotlin n\u2019a pas rajout\xe9 de fonctionnalit\xe9s significatives depuis un an ou deux
Comment enlever des accents et autres marques diacritiques dans des chaines de caract\xe8res en Java https://glaforge.dev/posts/2024/01/url-slug-or-how-to-remove-accents-in-java/
- Pour les URLs d\u2019un blog post, par exemple, on souhaite avoir le titre dans l\u2019URL, mais de mani\xe8re URL-friendly, donc sans accents, en rempla\xe7ant les espaces par des tirets, etc
- Guillaume propose une approche bas\xe9e sur la normalisation de chaine unicode et les expressions r\xe9guli\xe8res
- Mais il \xe9voque \xe9galement la librairie Slugify qui est en plus capable de faire de la translit\xe9ration (pour transformer aussi des id\xe9ogrammes et autre caract\xe8res non-ASCII)
Les \u201cgatherers\u201d de JDK 22 https://blog.soebes.io/posts/2024/01/2024-01-07-jdk-gatherer/
- Nous avons mentionn\xe9 r\xe9cemment le JEP 461 pour Java 22 : Stream Gatherers, qui sera en preview
- Permet de faire des choses qui \xe9taient un peu compliqu\xe9es \xe0 faire avec l\u2019API stream avant, comme par exemple impl\xe9menter des fen\xeatres glissantes sur les donn\xe9es du stream
- L\u2019article parle des diff\xe9rentes capacit\xe9s des gatherers, avec un Integrator, un Initializer et un Finisher, et enfin un Combiner, avec diff\xe9rents exemples de code pour les illustrer
Librairies
Le fonds tech souverain d\u2019origine allemande sponsorise le d\xe9veloppement de Log4J https://www.sovereigntechfund.de/news/log4j-investment
- 3 contributeurs pourront bosser dessus \xe0 temps plein
- permet de s\xe9curiser le d\xe9veloppement du projet
- r\xe9action \xe0 l\u2019impact de la CVE Log4shell qui avait bien marqu\xe9 les esprits et fait bosser plein de gens le weekend pour tout patcher !
Cloud
Le glossaire de la Cloud Native Foundation a \xe9t\xe9 traduit en Fran\xe7ais https://glossary.cncf.io/fr/
Web
Sortie de Vue.JS 3.4 https://blog.vuejs.org/posts/vue-3-4
- le parseur de composants (SFC) est 2x plus rapide
- am\xe9lioration du syst\xe8me de r\xe9activit\xe9 en particulier pour les propri\xe9t\xe9s \u201ccomputed\u201d (recalcul\xe9es)
- le namespace JSX deprecated a \xe9t\xe9 supprim\xe9
- C\xe9dric Exbrayat de NinjaSquad couvre \xe9galement les nouveaut\xe9s dans cet article https://blog.ninja-squad.com/2023/12/29/what-is-new-vue-3.4/
Astro JS 4.1 https://astro.build/blog/astro-410/
- D\xe9couverte de ce FW gr\xe2ce \xe0 Petipois https://medium.com/front-end-weekly/create-a-website-using-astro-in-2024-f5963003c19c
- Astro est le framework web pour la construction de sites web ax\xe9s sur le contenu tels que les blogs, le marketing et le commerce \xe9lectronique. Astro est surtout connu pour \xeatre le pionnier d\u2019une nouvelle architecture frontend afin de r\xe9duire la surcharge et la complexit\xe9 de JavaScript par rapport aux autres frameworks
- Architecture en \u201cAstrot Islands\u201d (interface en composants isol\xe9s)
- SSG et SSR (Static Site Generator ey Server Side Rendering)
- 0 Javascript si tu veux
- Tu utilises React, Angular ou Vue pour tes composants
- Lis plus ici : https://kinsta.com/fr/blog/astro-js/
React \xe0 10 ans\u2026 et l\xe0 ma d\xe9couverte de React Server Components https://www.joshwcomeau.com/react/server-components/#introduction-to-react-server-components-3
- \u201cAt a high level, React Server Components is the name for a brand-new paradigm. In this new world, we can create components that run exclusively on the server.\u201d
- L\u2019id\xe9e est de n\u2019est pas faire des composants entiers en react dans le backend, et de n\u2019est pas d\xe9l\xe9guer aux rendering client pour ces composants
Pr\xe9dictions 2024 https://thenewstack.io/2024-predictions-by-javascript-frontend-framework-maintainers/
- Angular: Optional Zone.JS
- Next.js (nouveau compilateur, + backend ?)
- React: adoption de React Server Components, SPA ne suffit pas. React auto-memorizing (useCallback/useMemo deprecate)
- Solid 2.0 viendra apr\xe8s SolidStart (framework web)
Data et Intelligence Artificielle
Retour d\u2019experience sur faire du RAG avec des LLMs https://x.com/taranjeetio/status/1742587923189596531?s=20
Gunnar Morling a lanc\xe9 le 1 billion row challenge : https://www.morling.dev/blog/one-billion-row-challenge/
- L\u2019id\xe9e est de calculer le min / max, la moyenne, de temp\xe9ratures, indiqu\xe9es ligne par ligne dans un \xe9norme fichier
- Il y a \xe9norm\xe9ment de contributions. Les plus rapides ont utilis\xe9 des memory mapped files, ou bien des instructions SIMD
- Le challenge \xe9tait en pur Java, mais d\u2019autres personnes ont tent\xe9 l\u2019exp\xe9rience avec diverses bases de donn\xe9es ou autres langages de programmation
Didier Girard parle de Shadow AI https://www.linkedin.com/posts/didiergirard_shadowai-genai-gouvernance-activity-7150031627006464000-IF1G/
- Comme on a parl\xe9 de \u201cshadow IT\u201d \xe0 une \xe9poque, la nouvelle ombre du jour, c\u2019est l\u2019intelligence artificielle
- Pour \xeatre plus productifs, les employ\xe9s utilisent l\u2019IA, sans forc\xe9ment le dire \xe0 leur employeur
- Le probl\xe8me \xe9tant qu\u2019avec certains syst\xe8me d\u2019IA, les donn\xe9es que vous envoy\xe9es peuvent \xeatre sauvegard\xe9es et utilis\xe9es pour r\xe9-entrainer l\u2019IA\u2026 et potentiellement, l\u2019IA pourrait recracher verbatim du texte provenant de ces donn\xe9es \xe0 d\u2019autres utilisateurs. D\u2019o\xf9 une br\xe8che dans la s\xe9curit\xe9 des donn\xe9es de l\u2019entreprise
Appel de fonction avec le LLM Gemini de Google https://glaforge.dev/posts/2023/12/22/gemini-function-calling/
- Les Large Language Model sont limit\xe9s par les connaissances qu\u2019ils ont acquises lors de leur entrainement
- Une approche possible pour se baser sur une base documentaire est d\u2019utiliser l\u2019approche Retrieval Augmented Generation (RAG) o\xf9 l\u2019on utilise une base de donn\xe9es vectorielle pour r\xe9cup\xe9rer des passages de texte qui correspondent \xe0 la requ\xeate demand\xe9e
- Mais il existe aussi une approche int\xe9ressante qui permet d\u2019appeler des syst\xe8mes externes (APIs, service local, etc) en permettant au LLM de savoir qu\u2019il peut r\xe9pondre \xe0 une demande donn\xe9e en se basant sur l\u2019appel d\u2019une fonction. Dans cette approche, le LLM r\xe9pond qu\u2019il faudrait appeler une fonction (par exemple pour connaitre la m\xe9t\xe9o \xe0 Paris) et il indique quels param\xe8tres passer (\u201cParis\u201d). Le d\xe9veloppeur ensuite appel cette fonction et retourne le r\xe9sultat de l\u2019invocation au LLM, qui va ensuite pouvoir g\xe9n\xe9rer du texte avec ces donn\xe9es.
- C\u2019est l\u2019approche \u201cfunction calling\u201d qui permet d\u2019\xe9tendre \xe0 un LLM pour lui donner acc\xe8s \xe0 des donn\xe9es live, derri\xe8re une API, etc
M\xe9thodologies
Une video sur le p\xe8re No\xebl et la pens\xe9 critique de la Tronce en Biais https://youtu.be/tqlYKO_asFw?si=g1Fq5OfCvQONNb2i
- Vid\xe9o interessante pour comprendre comment nous, dans la tech, on peut tomber facilement sur des croyances qui sont doutantes si on d\xe9veloppe pas l\u2019esprit critique.
- Le p\xe8re No\xebl, v\xe9ritable complot plan\xe9taire des adultes, magasins, m\xe9dias \u2026 d\u2019un mensonge
- Un enfant qui essaie d\u2019appliquer le proc\xe9d\xe9 \xe9pist\xe9mologique, il n\u2019a pas d\u2019autre source pour v\xe9rifier que le p\xe8re no\xebl n\u2019existe pas, tous ses sources fiables duquel il apprend le monde (parents, profs, medias, histoires, medias) valident que le p\xe8re no\xebl existe.
- Expliquer les incoherences par la magie, c\u2019est quelque chose de compl\xe9ment banal dans l\u2019univers d\u2019un enfant \xe0 qui on parle en permanence de magie
- La d\xe9couverte de la mensonge aux alentours de 7 ans, l\u2019age de la raison, est une bonne opportunit\xe9 pour aborder l\u2019esprit critique avec les enfants
Loi, soci\xe9t\xe9 et organisation
EU AI Act cheat sheet https://www.linkedin.com/posts/yann-lecun_eu-ai-act-cheat-sheet-understand-activity-7139980837013331971-TDqI?utm_source=share&utm_medium=member_ios
- Les entreprises vont avoir 1 ou 2 ans pour s\u2019y conformer
- Basics: Definition de l\u2019AI, extraterritorialit\xe9, exceptions (oss, r&D, mais aussi d\xe9fense \u2026), classification par niveaux de risks (Prohibited > High Risk > Limited Risk > Minimal Risk)
- Prohibited: Biometrique, social credit scoring, detection d\u2019emotions, renforcement des lois bas\xe9es sur l\u2019identification biometrique en public
- High (des r\xe9gles sont d\xe9finies pour controler ces usages: transparence, qualit\xe9, risque \u2026): Le mat\xe9riel m\xe9dical, les v\xe9hicules, l\u2019\xe9ducation, les \xe9lections, \u2026
- General: Transparence et information
ChatGPT n\u2019est pas un super m\xe9decin https://x.com/drhughharvey/status/1736308984288563550?s=46&t=C18cckWlfukmsB_Fx0FfxQ
- ces d\u2019utilisation ChatGPT en copilote
- Trop de non d\xe9terminisme dans les r\xe9ponses \xe0 la m\xeame question
- 41% des r\xe9ponses dans le consensus m\xe9dical
- 7% dangereuse
- Faire du rag n\u2019a mont\xe9 que de quelques pourcents 5
Transcription de la conf\xe9rence donn\xe9e PGConf EU par Laetitia Avrot et Karen Jex (expertes Postgresql): Trying to be Barbie in Ken\u2019s Mojo Dojo Casa House https://karenjex.blogspot.com/2023/12/trying-to-be-barbie-in-kens-mojo-dojo.html
- Il s\u2019agit d\u2019une conf\xe9rence en sociologie. En sociologie, il suffit que quelque chose soit vrai pour la majorit\xe9 des cas pour \xeatre consid\xe9r\xe9 comme une v\xe9rit\xe9, car cela repose sur des statistiques.
- Sujet donn\xe9 pour susciter de l\u2019attention sur un probl\xe8me qui existe bien dans la tech. Elles ont r\xe9alis\xe9 que la grande majorit\xe9 de la population n\u2019en \xe9tait pas consciente (barbie)! Le film Barbie les a fait comprendre qu\u2019elles doivent expliquer ce \xe0 quoi les femmes sont confront\xe9es au quotidien, afin que les autres puissent comprendre \xe0 quel point cela peut \xeatre \xe9puisant.
- Tr\xe8s bien document\xe9 avec bcp de liens et r\xe9f\xe9rences au del\xe0 de l\u2019exp\xe9rience personnelle
- Transcription et slides dans l\u2019article
- Lien entre film Barbie et la place des femmes dans la tech. Id\xe9es non neuves mais cela a \xe9t\xe9 un impact
- Les biais en g\xe9n\xe9ral ne sont pas particuliers \xe0 un genre, sont globales. Test sur les biais implicites
- Il existe un d\xe9ficit de talents technologiques (estim\xe9 atteindre de 1,4 million \xe0 3,9 millions de personnes d\u2019ici 2027 dans les pays de l\u2019UE-27), qui pourrait potentiellement \xeatre combl\xe9 en doublant la proportion de femmes dans le secteur technologique. Cependant, la part des femmes dans les r\xf4les technologiques conna\xeet sa plus basse repr\xe9sentation dans les domaines en pleine croissance tels que DevOps et le cloud.
- plus de la moiti\xe9 des femmes quittent l\u2019industrie technologique 10 \xe0 20 ans apr\xe8s le d\xe9but de leur carri\xe8re, soit le double du taux des hommes. (manque d\u2019opportunit\xe9s, difficult\xe9s face aux biais, se sentir comme une outsider etc\u2026)
- La part des femmes dans les r\xf4les technologiques en Europe risque de diminuer pour atteindre 21% d\u2019ici 2027.
- Solutions: roles mod\xe8les, combattre nos biais (si on ne les reconnait pas, on ne peut pas le combattre), mentoring, faire attention \xe0 donner de la voix etc\u2026
New York Times porte plainte \xe0 open ai https://www.bbc.com/news/technology-67826601
- r\xe9clame des billions en copy right, suit aussi Microsoft et Bing qui utilise open ai
- on peut trouver des extraits des articles avec suscription disponibles
- Si on demande \xe0 chat gpt sur des news actuelles, reprend des explications tir\xe9s du NYT sans le mentionner
- Sur bing on peut trouver aussi des extraits sans citer ni linker la source
- Cons\xe9quences pour NYT: moins d\u2019acc\xe8s \xe0 leur site, moins de consultations, moins des clicks, chute des suscriptions, pertes mon\xe9taires importantes
- R\xe9ponse de OpenAI au NYT https://openai.com/blog/openai-and-journalism
- We collaborate with news organizations and are creating new opportunities
- Training is fair use, but we provide an opt-out because it\u2019s the right thing to do
- \u201cRegurgitation\u201d is a rare bug that we are working to drive to zero
- The New York Times is not telling the full story
Outils de l\u2019\xe9pisode
Userscripts https://github.com/quoid/userscripts: extension pour changer le CSS et JS des sites dans votre navigateur
Rubrique d\xe9butant
Guillaume a publi\xe9 2 \u201ccodelabs\u201d pour d\xe9marrer sur LangChain4J, en utilisant le LLM PaLM de Google https://glaforge.dev/posts/2023/12/18/get-hands-on-codelabs-to-dabble-with-llms/
- Ces 2 tutoriels pratiques permettent de d\xe9couvrir les deux mod\xe8les text et chat de PaLM
- Diff\xe9rentes t\xe2ches sont illustr\xe9es pour faire de simples questions/r\xe9ponses, de simples chat, mais aussi comment extraire des donn\xe9es structur\xe9es d\u2019un texte, comment faire de la classification (avec un exemple d\u2019analyse de sentiment)
Google Summer of Code - appel aux projets https://summerofcode.withgoogle.com/
Conf\xe9rences
La liste des conf\xe9rences provenant de Developers Conferences Agenda/List par Aur\xe9lie Vache et contributeurs :
Nous contacter
Pour r\xe9agir \xe0 cet \xe9pisode, 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 \xe9pisodes et toutes les infos sur https://lescastcodeurs.com/