Published: Sept. 17, 2021, 6:20 p.m.
Deux A et un E discutent des nouvelles de l\u2019\xe9t\xe9 et de la rentr\xe9e. #JDK17 #scala #Kotlin #spring6 #dockerdesktop #fitdesk et encore d\u2019autres sujets.
Enregistr\xe9 le 10 septembre 2022
T\xe9l\xe9chargement de l\u2019\xe9pisode LesCastCodeurs-Episode\u2013263.mp3
News Langages
Au revoir AdopOpenJDK, bonjour Adoptium
- Eclipse Temurin runtimes pour la partie JDK
- Grosse test suite
- License oracle (que Adopt OpenJDK avait perdu)
- Plus de OpenJ9 ni GraalVM (Oracle recule) mais IBM a Rapatri\xe9 OpenJ9 sous le nom IBM Semurin
- Nouvelles API (backward compatibles ?)
- Les anciens builds ne seront pas migr\xe9s
Une interview des architectes Java
- Java longevity: stability (not removing things), readability, ecosystem\u2019 well defined stable interfaces (JVM etc)
- Nouvelles fonctionnalit\xe9s : qu\u2019est que qui ne peut \xeatre fait en dehors de la plateforme
- Rendre Java plus extensible (Valhalla)
- Bloque en Java 8
- Perds argent (meilleure m\xe9moire, performance, temps de d\xe9marrage, pauses 2ms G1 etc
- S\xe9curit\xe9
- Loom
- R\xe9active programming pour mieux utiliser le,hardware
- Mais oppos\xe9 \xe0 certains designs de la JVM (error report, d\xe9bug, flight recorder)
- Loom r\xe9sout le m\xeame probl\xe8me mais en harmonie avec la JVM
- Api famili\xe8res
- Next
- Vallalah , panama
- Tail call recursion
- Etc
Article en passant sur l\u2019utilisation du foreign API avec libsodium
Quoi de neuf dans Scala 3
- Scala 3.0.1
- Syntaxe given simplifi\xe9e (pas de with)
@experimental
- Scala 3.1
- Experimental safer exception (checked exceptions mais sans les ennuis)
- Warnings de compilation plus configurable
- Multiversal equality (des classes diff\xe9rentes qui peuvent \xeatre \xe9gales)
Kotlin a 10 ans
- annonc\xe9 en 2011, 1.0 en 2016, default Android en 2017
- pas theorique, problemes pragmatiques
- multi plateforme encore experimental, on prend notre temps
- ajoutent features dans le core lib plus lentement que Java
- prochains 10 ans: multiplatforme, langage reste relevant, reactive programming et immuabilit\xe9 du front vers le back
Librairies
Spring 6 / SpringBoot 3 annonc\xe9 \xe0 SpringOne
- Java 17 et plus
- Int\xe8gre Spring Native
- Tomcat 10 min
- Jakarta 9 avec cassage de packages
- Q4 2022
- Spring 5.3 et SpringBoot 2.7 seront en maintenance open source entendue
- Autre lien
Quarkus 2.2 et 2.1
- 2.2 Solidification (utilisabilite, doc, corriger probl\xe8mes)
- Mongodb service binding
- RESTEasy R\xe9active automatiquement choisi le thread bloquant ou non bloquant
- 2.1
Micronaut 3 est sorti
- RxJava n\u2019est plus un d\xe9pendance transitive (choix du moteur r\xe9active streams)
- Utilisent Reactor en dessous
- Les annotations ne sont plus h\xe9rit\xe9es par d\xe9faut
- Support Jakarta lifecycle annotations, Jakarta inject
- Injection qualifi\xe9e par le generic des arguments
- Filtres servers plus consistant (appel\xe9s une seule fois)
@Introspected
ne rajoute plus les metadonnes pour GraalVM, utiliser @ReflectiveAccess
- Ajout des resources passe du compile time au build time donc utilisez les plugins maven de Micronaut ou faite le vous m\xeame
- Quelques autres breaking changes
- OpenRewrite r\xe8gles changent le code pour migrer pour vous
Infrastructure
Comment debugger son script Ansible
--step
- In-line logging
- Ansible-lint
- Ansible-console
- Ansible debugger
Cloud
Apple nous prot\xe9geras des photos pedophiles mais en ouvrant une br\xe8che sur la s\xe9curit\xe9 de ses t\xe9l\xe9phones
- Une analyse techniques
- Il y a deux choses distinctes
- D\xe9tecter les images d\u2019une base de donn\xe9e pedophile avec du hash sur le t\xe9l\xe9phone et en alertant quand trop\u2019sonr flaggues positive (avec check humain)
- \xc7a s\u2019appuie sur iCloud photo car sur leur cloud mais pas un filtre serveur
- Base de donn\xe9e Baked dans chaque iOS
- NeuralHash
- Hash r\xe9siste au r\xe9 cadrage et autres ajustement de photos
- Threshold secret sharing
- Au bout de n rapports remont\xe9s, on a capacit\xe9 \xe0 reconstituer la clef de chiffrement
- Et un troisi\xe8me m\xe9canisme pour \xe9viter de montrer qu\u2019elles photos int\xe9ressent Apple
- Quid d\u2019une puissance \xe9trang\xe8re qui veut rajouter des photos de discidents?
- Apple dit on n\u2019acceptera pas
- O\xf9 attaque sur le neural hash
- D\xe9tection de nudit\xe9 et demande si l\u2019nfznt veut voir avec alerte aux parents
- Ils se donnent quelques mois de retravail au final
AWS a 15 ans
- demarre avec une region, un seul type d\u2019instance et tout ephem\xe8re (pas de block storage)
- peu de feature et peu de details initialement
- prix a l\u2019heure initialement qui etait innovant
Data
La guerre de la recherche - Les clients Elastic Search ne seront pas compatible avec OpenSearch
- Elastic vs AWS - Clash num\xe9ro ? Dans ce dernier \xe9pisode, Elastic rajoute des controles dans ses APIs clientes pour ne se connecter qu\u2019a ses propres clusters et emp\xeacher de les utiliser avec opensearch.
- Risques d\u2019incompatibilit\xe9
- Manque de chance ce changement bloque aussi l\u2019utilisation de la version OSS d\u2019elastic-search.
- De son cot\xe9 AWS promet de faire son possible pour fournir des drivers qui resteront compatibles Elasticsearch 7.10.2 (la version \xe0 partir de laquelle ils ont fork\xe9) et OpenSearch
- Bref la guerre continue \u2026
Outillage
AtomicJar release TestContainers 1.16
- https://www.atomicjar.com/2021/07/testcontainers\u20131\u201316\u20130-release/ Test Containers 1.16.0 est la premi\xe8re release faite par AtomicJar, la soci\xe9t\xe9 cr\xe9\xe9e par les fondateurs du projet.
- Meilleure compatibilit\xe9 Apple M1
- Couche de transport utilise Apache HTTP Client 5 au lieu de OKHTTP pour \xe9viter la malediction Kotlin
- Meilleure stabilit\xe9 et compatibilit\xe9 sur Windows pour process natifs Windows et WSL 2
- docker.host peut etre configur\xe9 dans $HOME/.testcontainers.properties
- Aussi Support Podman am\xe9lior\xe9 r\xe9cemment
Docker introduit un nouveau syst\xe8me d\u2019abonnement avec Docker Business et diff\xe9rents niveaux: perso, pro, entreprise etc
Les diff\xe9rentes mani\xe8res de d\xe9clarer les d\xe9pendances dans son projet Gradle
- En particulier, les diff\xe9rences entre api, implementation, runtimeOnly, compileOnly, compileOnlyApi Avec des exemples concrets pour bien illustre ces diff\xe9rents scopes.
- Gradle regroupe les d\xe9pendances dans des ensembles appel\xe9s des \u201cconfigurations\u201d. Ces configurations d\xe9finissent le classpath lors de la compilation, ou le classpath pour le runtime lorsque votre code s\u2019ex\xe9cute.
- Gradle d\xe9finit 3 types de configuration : api, implementation et runtimeOnly
- La configuration \u201capi\u201d est utilis\xe9e pour le classpath compilation et runtime et est expos\xe9 aux consommateurs de l\u2019API aussi pour le classpath de compilation et runtime
- La configuration \u201cimplementation\u201d est utilis\xe9e pour le classpath de compilation et runtime, mais est expos\xe9e pour le consommateur de l\u2019API que pour le classpath au runtime
- La configuration \u201cruntimeOnly\u201d n\u2019est utilis\xe9e que pour le classpath au runtime
- La configuration \u201ccompileOnly\u201d est utilis\xe9e pour le classpath de compilation, mais n\u2019est pas expos\xe9e pour les consommateurs
- Enfin la configuration \u201ccompileOnlyApi\u201d est utilis\xe9e pour le classpath de compliation et est expos\xe9e au consommateurs \xe0 la compilation de leur code quand les metadata Gradle sont utilis\xe9es
M\xe9thodologies
Opinion sur Googlespeak et les pratiques anti concurrentielles
- Certains dont l\u2019auteur voient Google utiliser Google search pour placer hautement leur propres services alternatifs. Google flight etc
- Et les Googlers avec qui il interagissait trouvait \xe7a \xab absurde \xbb de penser \xe7a.
- Chercher un h\xf4tel
- \xc9tude montre que Google offre 41% de sa premi\xe8re page \xe0 ses propres propri\xe9t\xe9s (inclus direct answers )
- Direct answer est mis rapide pour l\u2019utilisateur mais prend le contenu 3rd party ( Wikipedia, IMDb etc) et nous fait rester sur une page Google.
- Googlespeak d\u2019apr\xe8s Orwell. Si le langage ne permet pas d\u2019exprimer , on ne pense pas aux choses.
- Pas dominant mais succ\xe8s. Pas barri\xe8re \xe0 l\u2019entr\xe9e , march\xe9, effet r\xe9seau qui sont taboo dans un contexte de tension antitrust
- Encourage \xe0 r\xe9fr\xe9ner sa communication \xe9crite.
- Comme beaucoup de soci\xe9t\xe9s am\xe9ricaines \xe0 cause du processus de discovery
- Market share -> user preference
- Apple et epic ont lev\xe9s des doc similaires mais Apple n\u2019\xe9tait pas gard\xe9 dans sa comm interne. Autour de l\u2019app store.
- Google dans ses formation mention non monopoly car beaucoup de comp\xe9titeurs. Et se defini en termes tr\xe8s large et donc avec de la comp\xe9tition. (Dans la pub et dans la recuperation d\u2019information.
- Ils ne font pas d\u2019analyse de march\xe9s (sur les march\xe9s dominants) quand demand\xe9s par le congr\xe8s.
- 65% des recherches n\u2019entra\xeenent pas un clic sur un site externe - valeur r\xe9fut\xe9e par Google
- C\u2019est une r\xe9action \xe0 la judiciarusarion de la vie des entreprises.
Loi, soci\xe9t\xe9 et organisation
Matt Asay quitte AWS et reflecte sur l\u2019open source chez AWS
- pleins de petites equipes et pas de d\xe9cisions top down
- en tous cas pas pour open source
- Un langage specifique a Amazon pour convaincre
- Les Leadership Principles tendent \xe0 ne pas investir dans les elements side de type open source
- et quand on a deux pizza team, peut on contribuer sans se sentir trop contraint en temps
- si c\u2019est une \xe9quipe de 12 sur 200 equipes ca ne m\u2019\xe9tonnes pas trop \U0001f642
L\u2019Open Source au secours du d\xe9veloppeur (et de l\u2019architecte) ?, un retour d\u2019exp\xe9rience tr\xe8s personnel mais instructif pour ceux qui souhaiteraient se lancer \u2026
- Pourquoi l\u2019Open Source ?
- Par o\xf9 commencer ?
- Le choix du premier projet pour sa premi\xe8re contribution? (Le syndrome de l\u2019imposteur)
- La premi\xe8re contribution
- Rythme de travail
Outils de l\u2019\xe9pisode
Fit Desk
- Antonio passe au Fit Desk pour travailler en p\xe9dalant
- Promis, il \xe9crira un blog dans 4/6 mois avec du feedback
Rubrique d\xe9butant
RISC vs CISC
- CISC roi quand la m\xe9moire est ch\xe8re, on cr\xe9e des instructions haut niveau plus complexes
- RISC paye en m\xe9moire mais simplifie la cha\xeene de travail (instructions de taille fixe)
- RISC plus d\u2019op\xe9rations et donc de CPU clock mais pipelining possible
- RISC compens\xe9 par plus de registers et par la compression d\u2019instructions set
- register m\xe9moire interne CPU de taille fixe
- CISC fait du hardware hyper threading
- RISC philosophiquement fait travailler les compilateurs beaucoup plus mais on ne code plus en assembleur
Conf\xe9rences
Crowdcast sur devfest Lille et CloudNord par Emmanuel Demey
Pas de Devoxx Belgique en 2021
Nous contacter
Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs
Faire un crowdcast ou une crowdquestion
Contactez-nous via twitter https://twitter.com/lescastcodeurs
sur le groupe Google https://groups.google.com/group/lescastcodeurs
ou sur le site web https://lescastcodeurs.com/