Les Cast Codeurs Podcast

Emmanuel Bernard, Guillaume Laforge, Vincent Massol, Antonio Goncalves, Aud
undefined
Feb 12, 2022 • 1h 45min

LCC 272 - Interview sur Log4Shell avec this

Emmanuel et Arnaud reviennent sur la fameuse faille #log4shell qui a fait travailler beaucoup d'équipes Java en décembre et janvier. Enregistré le 11 février 2022 Téléchargement de l'épisode LesCastCodeurs-Episode–272.mp3 Interview Quelle est cette vulnérabilité et pourquoi est-elle si dangereuse ? CVE–2021–44228 Reportée chez Apache le 24 Novembre, Enregistrée en CVE le 26 Nov Probablement connue depuis au moins Mars 2021: https://github.com/nice0e3/log4j_POC fix 2.15.0 le 10 décembre Apache Log4j2 JNDI features do not protect against attacker controlled LDAP and other JNDI related endpoints. Severity CVSS de 10 sur 10 jamais vu Back to basics: C'est quoi JNDI? the JNDI features used in configurations, log messages, and parameters do not protect against attacker-controlled LDAP and other JNDI related endpoints l'attaquant trouve une donnée utilisateur qui est loggée Pas que HTTP et injecte {JNDI:ldap pointant vers un ldap malicieux qui retour du code java sérialisé log4j deserialise et execute ce que l'on veut que log4j2-core pas api détail de Lunasec log4j zero day mitigations initiales CVE–2021–45046 2.16.0 (change des fonctionalités) le 13 décembre Apache Log4j2 Thread Context Lookup Pattern vulnerable to remote code execution in certain non-default configurations When the logging configuration uses a non-default Pattern Layout with a Context Lookup $${ctx:loginId}) attackers with control over Thread Context Map (MDC / Mapped Diagnostic Context) input data can craft malicious input data using a JNDI Lookup pattern donc on peut injected une chaine JNDI encore mais on doit savoir comment de la date utilisateur on peut pousser dans une Thread Context Map référencée par la config on alors l'attaquant a accès à la config et c'est game over Initialement on parlait de denial of services via une reference infinie probablement c'est une chemin qui n'était pas protégé des interpolations de messages et donc de l'accès JNDI CVE–2021–45105 fix dans 2.17.0 le 18 décembre recursion non controlée dans un lookup auto référentiel When the logging configuration uses a non-default Pattern Layout with a Context Lookup (for example, $${ctx:loginId} Besoin de l'attaquant control de Thread Context Map (peut etre une donnée injectée par un framework d'une entrée utilisateur changer la config log4j locale? CVE–2021–44832 2.17.1 le 27 décembre Apache Log4j2 vulnerable to RCE via JDBC Appender when attacker controls configuration malicious configuration using a JDBC Appender with a data source referencing a JNDI URI which can execute remote code. attaquant accede et modifie la config pas simple sauf si la plateforme permet la reconfiguration par un utilisateur??? log Google package analysis montre 8% de packages sur central affectés par log4j 2 niveau de dépendance transitive monte jusqu'à 9 du coup il y a neuf vendeurs qui doivent corriger leurs dépendances Toujours plus de 40% de téléchargement sur Maven central des versions impactées Log4j1 n'est pas en reste: JMSAppender JMS dit JNDI et paf on recommence JDBCAppender SQL injection FTW log4j1 n'est plus maintenue ah merde! Apache Kafka Reload4j de ceki 1.2.17 compatible voir les fixes Des exploitations ? Peu au final Car chaque usage de log4j est unique Entrée quoi est loggé etc Donc trop dur pour les script kiddies Mais dans les megasploits et autres toolkits d'attaque VMware vSphere et Hoirizon Ubiquity Solarwind etc Quel process suivre verifier la véracité de la CVE et comprendre ses vecteurs d'attaque identifier ses dépendances et donc ses soft impacté identifier les éléments fournis par l'utilisateur qui sont loggés définir le risque par software et par service appliquer le patch de sécurité et reconstruire le package déployer ou livrer chez les clients répéter pour les semaines à venir shading? :) Impact de l'industrie dans le futur La chine a tapé sur les doigts Alibaba qui n'a pas donné cette faille d'abord au gouvernement chinois The Gift of It's Your Problem Now Discussion sur le paiement et l'open source Pour un individuel l'open source est un cadeau, et donner de l'argent n'améliore pas le cadeau Injecter de la compensation financière dans un cadeau casse le cadeau et ne change pas la motivation (ou la casse) Pour une société, l'open source est un moyen de récupérer du feedback et du marketing, donc c'est une transaction et pas un cadeau Un autre article similaire burden open source maintainer colors faker mainteneur rajoute une boucle infinie dans un package modems très utilisé en protestation de non contribution (financière) 20 millions de téléchargements par semaine GitHub a bloqué son compte et nom a remis une ancienne version un peu de temps avant il s'est fait copié son idée de faker.js as a service Reflection on log4shell par diabolical developer marathon pas un sprint, on fatigue après 5 ou 6 jours a fond, donc faites des rotations comm sur le réseau, que regarder : Adding encryption, Auth/Auth, I sanitize data that goes over the wire, I sanitize input that could execute, DOS protection – backoff strategies and more. supply chain sécurisation and component governance OSS funding (hum?) 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
Jan 17, 2022 • 1h 31min

LCC 271 - UPX version Spinal Tap

Antonio, Guillaume et Emmanuel discutent 11, le 42 du rockeur, Quarkus, Java 17, limites de Kubernetes, #Y2k22, web3, Maven, Log4J, et et et cloud souverain. Enregistré le 14 janvier 2022 Téléchargement de l'épisode LesCastCodeurs-Episode–271.mp3 News Langages Quoi de neuf dans Java 18 de Loïc Mathieu Feature complete (mais encore des bugs) UTF–8 par défaut exemples de code dans la javadoc avec @snippet y compris des references a des fichiers extérieurs Simple Web Server pour des resources statiques (comme d'autres platformes comme Ruby ou Python je crois. En code ou via la commande jwebserver le mécanisme de finalisation proposé à la suppression --finalization=disabled pour tester. Celui-là il ne nous manquera pas ré-implementation de la réflection avec les MethodHandle Le calendrier de l'Avent Java 2021 a plein d'articles très intéressants pas tous révolutionnaires, mais c'est sympa RXJava vs Kotlin Coroutines Analyser votre repo Git en Java avec jgit Cinq choses que vous ne saviez pas sur la concurrence en Java l'ordre du programme et l'ordre d'exécution n'est pas le même, mais il est sémantiquement similaire le nombre de threads dans une JVM est limité (dépend de la machine) plus de threads ne veut pas dire plus de perfs Librairies Quarkus 2.5 et 2.6 sont sortis: API programmatique pour interagir avec le cache Kotlin 1.6 Java 17 par défaut pour les nouveaux projets générés des extensions ont bougé du core vers le quarkiverse hub, peut-être quelques impacts de migration images container plus petites en natif et compression UPX possible plus petit sur disque mais plus gros en memoire (pour la décompression) quarkus.native.compression.level de 1 à 10 dans le fichier de config dev service pour Oracvle DB Utiliser Neo4J pour analyser le chemin de code et pourquoi un bout de code est inclus en natif super utile pour les compilations natives quarkus.native.enable-reports pour avoir le rapport exploitable par neo4j SmallRye Stork service discovery et client side load balancing support pour Consul, Eureka, and Kubernetes extensible notamment pour le load balancing intégration avec Quarkus REST Client et gRPC dans la config stork://hello-service Infrastructure Pourquoi et comment de la taille des containers Kubernetes quand on ne partage pas, inefficient mais sécurisé Avec des VM, on peut overcommitter des resources sur l'hyperviseur mais risque sur mésentente Ne remplace pas le capacity planning Containers définissent des filtrages plus fins et tuent les process qui dépassent Discussion cpu_share (proportion en balance), cpu quota, cpu period pour définir les limites basses et hautes mais si ça reste statique par host c'est pas très pratique Orchestration de container via Kubernetes (request = min, limit = max) Kube donne au minimum request mais peut donner plus si le noeud n'est pas occupé à 100% Attention, la partie libre n'est pas distribuée équitablement mais en proportion du ratio de request demandé vs les autres. Donc les containers avec des grosses request sont privilégiés. Donc mettre limit est important Donc jouer le jeu request et monitored pour ajuster à la baisse si nécessaire. Tous les workloads doivent jouer le jeu. Kubernetes QoS (best effort , burstable et guaranteed) utilisé lorsque on tourne bas en mémoire (pas en cpu !) Discussion de la sélection du noeud (selector, affinity, taints and tolerations ou isolation/ restriction) pour isoler des qualités de service ou prédictabilité, pour la sécurité etc ) besoins mémoire : si utilisation max, pod killed. Besoins CPU : si utilisation max, on est throttled -> slow Mettre mémoire request = limit sauf si le process peut rendre de la mémoire (pas fait avant java 11) CPU request = limit si la prédictabilité de l'application est très important. Etudier conso CPU de l'appli en percentile et targeted par exemple une garantie à 99% ou 90 ou moins si pas sensible Article ne parle pas du scale out Exchange 2016 et 2019 souffrent du bug de l'an 2022 Y2K22 Après Matrix et son opus Resurection, Microsoft relance le bug de l'an 2000, 22 ans après, Y2k22 dans Exchange server 2016 et 2019 et d'autres systems non microsoft pour Exchange c'est du au systeme de scan d'antivirus qui ne reconnaissait pas les dates des signatures de virus 22010100001 parce que le software stocke les dates dans un entier signé 2^31-1=2147483647 et la date est stockée sur les deux premiers chiffres. le workaround initial est assez marrant, le software considère qu'on est le 33 décembre 2021 2112330001 Web Moxy de Signal (ex) discute web3 web1 était décentralisé, web2 est riche mais centralisé, web3 sera riche et décentralisé problème: les gens n'aiment pas faire tourner leurs propres serveurs et ne l'aimeront jamais même les entreprises ne font plus tourner leurs serveurs un protocole (standard) bouge beaucoup plus lentement qu'une plateforme exemple Spring, exemple Quarkus vs Microprofile ou Jakarka EE puis discute blockchain et NFT l'état et la logique / les permissions pour mettre a jour sont décentralisées mais pas l'interface avec l'utilisateur blockchain est une confiance entre serveurs plus qu'entre clients avec le mobile, les clients ne peuvent pas acter en tant que server (voir Bitcoin) donc des gens vendent des accès centralisés aux noeuds de la blockchain et les clients de ses APIs ont une confiance implicite (et pas par le système) et centralisation des accès et donc mining de ces informations NFTs stockent l'URL de l'objet (sans hash) donc pas sécurisé sans parler du rachat de domaine il a fait un NFT qui se change en émoji caca pour celui qui l'a acheté et il s'est fait virer son NFT ET sa preuve de possession mais c'est une blockchain ??? sauf que le wallet passe par des fournisseurs centralisés pour faire web3, les gens se concentrent autour de plateformes, un comportement tres web2 donc la blockchain et NFT ont du succès pas parce que c'est distribué mais parce que c'est un gold rush la dynamique rend les projets web3 successful mais fondamentalement les mêmes dynamiques vont les centraliser propositions accepter que les gens ne font pas tourner leur serveurs et utiliser la crypto pour distribuer la confiance Outillage Maven 3 à 5 une explication le POM est figé parce c'est ce que publie maven central, donc maven 3 ne fera que des améliorations mineures Maven 5 la proposition: avoir un POM de build (v5) et produire un POM de consommation en v4, comme les autres systèmes de builds font Maven 4 va faire la meme séparation mais en faisant un POM v4 build to PO)M v4 consumer conversion en étape intermédiaire maven 4 alpha 1 se rapproche, il attend juste des contributions de @aheritier blog de Hervé Boutemy Maven Wrapper (ex takari) est désormais un projet officiel apache maven : https://maven.apache.org/wrapper/maven-wrapper-plugin/ idem pour Maven Daemon https://github.com/apache/maven-mvnd Le maven Build Cache arrive : https://github.com/apache/maven-build-cache-extension Sécurité Comme prévu, la saga log4j continue avec Log4j 2.17 et 2.17.1 avec l'augmentation de la visibilité, plus de problèmes vont être trouvés Log4J 2.17 corrige un appel récursif infini exploitable en déni de service. Besoin d'avoir un pattern non standard dans la config (utilisant les context lookup) et un accès au Thread Context Map par l'attaquant (5.9) https://logging.apache.org/log4j/2.x/security.html#CVE-2021-45105 Log4J 2.17.1 fixe un abus du JDBCAppender qui peut référencer une URL JNDI et executer du code a distance mais l'attaquant doit pouvoir modifier la configuration de log4j (6.6) https://logging.apache.org/log4j/2.x/security.html#CVE-2021-44832 doit-on quitter le navire ? équilibre entre fonctionnalités et sécurité on fera un épisode spécial log4Shell bientôt H2 vulnérable à une attaque JNDI fondamentalement comme log4shell Mais exploitable pour ceux qui passent une url ou un login mot de passe via des infos utilisateur Par exemple h2 console Mais localhost par défaut Sauf dans jhipster Loi, société et organisation Tribune de Didier Girard sur le cloud souverain investissement de 1,8 milliards sur 4 ans dans le cloud français sur 4 ans. C'est moins que chaque grand cloud provider par an consortiums européens mais mauvaise histoire CloudWatt, Gaia-x et ses problèmes de gouvernance initiative Soutenu par la dépense publique Cloud de confiance est un moyen pour Didier du transfert technologique et de casser l'asymétrie de compétence et d'investissement Ça répond pas aux problèmes clés levés par Quentin dans l'interview La Maison Blanche demande à Oracle et Microsoft de réfléchir à la sécurisation des logiciels libres Outils de l'épisode Rambox en general je préfère les applis natives pour chaque service Mais avec les messageries instantanées c'est la chianlie Et il y a les apps qui sont des tabs dans le navigateur (Trello, Gmail, calendar etc) Là tout est centralisé dans une seule app (notifications etc) C'est comme un mini browser dédié avec des sites webs fixes Et contre toute attente j'aime bien Version gratuite et version pro. Encore des limitations (vue de deux apps en parallèle) mais ils travaillent à une nouvelle version Conférences Sunny Tech à Montpellier le 30 juin et 1er juillet — CfP ouvert jusqu'au 28 février 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
Jan 3, 2022 • 1h 14min

LCC 270 - Interview de Nicolas De Loof sur Docker Compose

Nicolas De Loof rejoint Emmanuel et Antonio pour discuter de Docker Compose. Enregistré le 17 décembre 2021 Téléchargement de l'épisode LesCastCodeurs-Episode–270.mp3 Interview Ta vie ton oeuvre Nicolas De Loof Introduction à la techno Docker en 1 minute Docker compose d'où vient l'idée et le besoin La techno en concepts Un container c'est quoi ? Ça tourne comment ? Du coup, on veut en faire tourner plusieurs Comment on les "lie"? Network autre chose? Mais c'est pas le job de Kubernetes? deploy scaling rollback La spécification Discussion sur les notions: service build label network sécurité (cap_add) docker-compose vs docker compose Comment on l'utilise en pratique pour un dev Comment je définie mon multi container Lien vers des dockerfiles? Echange d'infos (e.g. DB connection ou mot de passe entre DB et l'appli) Ma DB doit démarrer avant mon app Ca fait les health check? Je commite ce fichier où typoiquement ? comment je partage avec mon équipe ? Et ma CI ? Comment je mets en prod ? Je mets en prod hein, ça marche sur ma machine. v2 vs v3 Sous le capot Et donc comment ça marche docker compose? Zoom sur le network La sécurité La communauté, le futur Roadmap Docker desktop payant Nous contacter Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs Faire un crowdcast ou une crowdquestion Contactez-nous via twitter https://twitter.com/lescastcodeurs sur le groupe Google https://groups.google.com/group/lescastcodeurs ou sur le site web https://lescastcodeurs.com/
undefined
Dec 23, 2021 • 1h 10min

LCC 269 - Log4J devient Turing-complet

Antonio et Guillaume discutent de nouvelle crèmerie, des fêtes de fin d'années, des cadeaux du père Noël, et… de log4j, le feuilleton de fin d'année ! Enregistré le 20 décembre 2021 Téléchargement de l'épisode LesCastCodeurs-Episode–269.mp3 News Décès de Stéphane Maldini (14 Dec 2021) Une triste nouvelle pour commencer l'épisode avec l'annonce du décès soudain de Stéphane Maldini Un acteur de l'écosystème Grails à la fin des années 2000, gràce à de nombreux plugins Mais plus connu pour avoir co-fondé le project Reactor, et popularisé le Reactive Programming au sein de la communauté Java Egalement à l'origine de R2DBC pour rendre l'accès aux bases de données plus réactif Après de nombreuses années chez Pivotal, il avait rejoint plus récemment Netflix, et c'est peut-être en partie grâce à lui que vous pouviez matter plein de séries ! CloudBees clot un tour de table de 150 millions de dollars valorisant l'entreprise à 1 milliards de dollars Le feuilleton Log4J2 (9 Dec 2021) Grosse faille de sécurité liée à l'utilisation des versions Découverte par un chercheur en sécurité d'Alibaba Cloud Détails publiés par LunaSec Log4J2 permet de faire de l'interpollation de texte en remplaçant des parties variables d'un message à logguer Hors il est possible d'ajouter des appels à des informations JNDI provenant d'un serveur LDAP Un serveur LDAP peut retourner une classe compilée que JNDI va executer en local lorsque Log4J2 va vouloir insérer l'information JNDI Donc potentiellement, la classe distante executée localement pourra exfiltrer des données, avoir accès aux processus qui tournent, etc. Log4J2 a été patché rapidement, mais d'autres failles sont apparues Différentes stratégies de mitigations ont été publiées Snyk a publié une "cheat sheet" pour remédier à la faille Langages Kotlin à l'assaut du K2 avec son nouveau compilo (11 Nov 2021) Lors de sa conférence Kotlin 2021 Premier annoncent des nouveautés autour du langage Le nouveau compilateur plus rapide K2 qui sert dorénavant de base pour toutes les plateformes cibles supportées qui apporte une nouvelle API pour créer des extensions au compilateur utilise un langage intermediaire (IR) au lieu de compiler directement en natif avec un nouveau frontal avec sa propre représentation intermédiaire qui permet de simplifier la compréhension du langage dans les IDEs, pour désugariser le sucre syntaxique rapidité accrue potentiellement jusqu'à 2 fois Le support de WebAssembly avec Kotlin/WASM Kotlin/JS continue d'exister, pour des applis Web, pour l'intégration JavaScript mais Kotlin/WASM apporte le support natif de WebAssmbly Kover, un nouveau plugin de couverture de code pour Kotlin/JVM, utilisable avec un plugin Gradle, compatible avec JaCoCo Le Kotlin Symbol Processor, KSP, drivé par Google, est maintenant stable, plus rapide, plus ergonomique d'utilisation (remplace Kapt) Groovy 4, on y est presque ! Sortie de la release candidate de Groovy 4, la finale est proche ! Changement des coordonnées Maven pour passer à org.apache.groovy (bye bye Codehaus) Suppression de vieilles coordonnées de packages ou classes mal-situées, à cause des modules Java (XmlSlurper, XmlParser, AntBuilder, GroovyTestCase) Le module groovy-yaml est rajouté au pom groovy-all et le module groovy-testng devient optionel Le vieux parseur basé sur Antlr2 est supprimé, et le parseur ("parrot") introduit dans Groovy 3 reste le seul parseur Le bytecode généré n'utilise plus que l'instruction invokeDynamic partout où c'est possible Support des expressions switch Support des sealed types Incubation du support des records Inclusion de type-checkers, par exemple avec le premier pour valider les expressions régulières à la compilation Inclusion de macro pour faciliter le débuggage Intégration de JavaShell dans la console Groovy pour facilier les expérimentations cross language Nouvelle annotation @POJO pour créer des POJO Java, sans la surchage de bytecode spécifique à Groovy (pratique pour la compilation statique) Incubation de design by contract avec l'intégration de l'ancien module gcontracts GINQ (Groovy Integrated Query) qui propose un langage proche de SQL, similaire à LINQ en .Net, pour facilier le travail avec les collections Incubation du support pour le langage de configuration TOML Trisha Gee partage ses nouvelles Java annotés pour le mois de Décembre (3 Dec 2021) Librairies Nouvelle paire de bottes 2.6 pour Spring Boot (19 Nov 2021) Support des attributs SameSite sur les cookies de session cookies pour les applications à base de servlet Support pour configurer les health groups sur le port principal ou de management Amélioration du endpoint /info avec des infos sur le runtime Java Support pour tester les applis Spring MVC en utilisant WebTestClient Auto-configuration de spring-rabbit-stream Support pour des règles personnalisées de nettoyage/filtrage des propriétés dans /env et configprops Micronaut 3.2 (23 Nov 2021) Nouvelle version de Micronaut Passage de GraalVM à la version 21.3 avec le support de JDK 17 (il faut maintenant développer a minima avec la distribution GraalVM JDK 11 et non plus 8) Version 3 du plugin GraalVM pour Gradle Support de Kotlin 1.6 Fonctionnalités HTTP Annotation @JsonView sur les paramètres annotés @Body Timeout configurable pour le handshake SSL Support amélioré du server push HTTP/2 pour envoyer les resources en parallèle Amélioration WebSocket avec le paramètre WebSocketPongMessage pour l'annotation @OnMessage pour répondre au Ping des WebSockets Support du protocole WS/WSS des WebSockets Différentes mises à jour des modules fonctionnels (Data, Security, Reactive, OpenAPI, Kubernetes, ElasticSearch) Cédric Champeau compare Gradle et Maven niveau composition et héritage (1 Dec 2021) Gradle et Maven prennent l'approche de "convention over configuration" Couvre les approches différentes entre Gradle et Maven : Maven prends une approche plutôt héritage, tandis que Gradle l'approche compisition Les plugins Gradle sont plus faciles à maintenir grâce à la composition et permet de créer ses propres convetions Infrastructure GitHub collabore à la sécurité des packages NPM (15 Nov 2021) GitHub est un des stewards du registre des packages NPM GitHub partage des détails sur les incidents de sécurités récents malware injectés récemment dans ua-parser-js, coa, et rc car un tiers avait réussit à usurper le compte d'un contributeur temporairement, les packages privées étaient potentiellement découvrables sur le réplicats de npmjs.com une faille qui a été découverte grâce à un bug bounty qui permettait de publier des versions de certains modules avec des comptes mal-sécurisés GitHub investit dans la sécurité, en particulier en rendant obligatoire la 2-factor-authentication pour les administrateurs et admins des packages les plus populaires hébergés sur GitHub, en rajoutant de la détection de malware automatique Jérôme Petazzoni et les anti-patterns Docker (30 Nov 2021) Jérôme partage une liste d'anti-patterns qu'il voit fréquemment quand il aide les gens à construire leurs images de conteneur Parmi les anti-patterns : les trop grosses images, comment les optimiser, comment monter des voluments plutôt que d'inclure de gros dataset dans l'image les trop petites images, mais attention car parfois on ne peut pas investiguer plus finement ce qui s'y passe utilisation de zip et tar, mieux vaut éviter de compresser pour ne pas utiliser trop de CPU ou d'espace dans l'image re-builder les bases communes : autant mettre l'image de base dans un registry, plutôt que de la re-construire à chaque fois construire l'image à partir d'un monorépo géant et comment organiser ses sources et la localisation de son Dockerfile avec chaque projet ne pas utiliser BuildKit avoir besoin de rebuilder pour chaque changement minime utiliser des scripts customs au lieu des outils existants comme Compose, Skaffold, Tilt et faire ses propres sh obliger les gens à faire tourner certaines choses dans des conteneurs alors que ça peut très bien tourner en local sur la machine du développeur utilisation d'outil trop complexes, autant utiliser des outils appropriés conflit de noms entre scripts et images builder dans des Dockerfiles Cloud Le runtime Java pour Google App Engine en Open Source (16 Dec 2021) Toujours dans un esprit d'ouverture pour éviter le lock-in, Ludovic Champenois qui dirige le runtime Java de Google App Engine Java a open sourcé les sources du runtime, du SDK. Azure : comment les développeurs migrent leurs applis Spring Boot dans le Cloud (2 Dec 2021) Cible en majorité Kubernetes, 2x plus que sur des VMs Challenges spécifiques Spring rencontrés Passer d'un monolith à une version cloud-friendly Migrer d'anciennes versions des composants Spring Cloud Migrer d'anciennes versions de Spring Boot Migrer de servelets vers Boot Migration de Java vers Spring Boot Java vers Boot Java EE vers Boot Spring Framework vers Spring Boot Mainframe vers Spring Challenges spécifiques au Cloud Migration de base de données Monitoring end-to-end Outils d'APM les plus fréquents Outils du provider cloud Prometheus Dynatrace AppDynamics End-to-End monitoring Splunk Elastic Outil du provider cloud Composants Spring les plus fréquemment utilisés Spring Cloud Config Server Spring Cloud Gateway Spring Cloud Service Registry Spring Cloud Load Balancer Spring Cloud Circuit Breaker (Resilience4J) Web CSS défensif (7 Dec 2021) Ahmad Shadeed partage de bonnes pratiques CSS, comment écrire du CSS propre, sans comportement bizarroïde suivant les navigateurs, ou qui répond bien de manière responsive Avec des exemples sur l'utilisation de Flexbox, de l'espacement, la gestion du contenu long (et donc du clipping), de l'apparence des images suivant la taille de la fenêtre, les média queries en vertical, le texte au-dessus des images, la gestion des scrollbars. Le custom CSS Reset de Josh Comeau (23 Nov 2021) Josh Comeau partage une nouvelle version de CSS Reset, non-opionated pour ce qui est design et cosmétique, mais qui prends certains partis pris (par exemple de l'italique reste italique) Couvre en détail chaque aspect : le box-sizing, les marges par défaut, la hauteur de ligne, des hauteurs basées sur les pourcentages, rendre les polices antialiasées, le word wrapping pour la gestion du retour à la ligne Google Fonts propose des articles sur l'utilisation des polices de caractères (7 Dec 2021) Elliot Jay Stocks a participé à la base de connaissance et d'articles du Google Fonts Knowledge Introduction à la typographie, comment choisir une bonne taille d'interligne, comprendre les mesures des caractères et des lignes Comment choisir une typographie et une police de caractères Un glossaire sur les termes relatifs aux polices de caractères, à la typographie Outillage JetBrains annonce Fleet un nouvel IDE (29 Nov 2021) Developpé from scratch Basé sur l'experience de 20 ans à developer des IDEs Fleet utilise le code-processing d'IntelliJ (polyglot) Nouvelle interface graphique Basé sur la librairie graphique 2D Skia (utilisée dans Chrome, Flutter, Android, Firefox…) Rapide et léger (démarre en quelques secondes) Architecture distribuée (tourne sur le PC, remote PC, dans le Cloud) Early Preview, pas encore accessible publiquement à tout le monde Mac: display_manager et Rectangle (29 Nov 2021) display_manager permet de scripter en ligne de commande la configuration des résolutions des écrans (interne ou externe), de changer la luminositer, la densité de pixel, la fréquence de raffraichissement Rectangle : cette petite application propose des raccourcis clavier pour positionner et retailler les fenêtres, pour les mettre rapidement en plein écran, à gauche/à droite, en quart, en tiers Hammerspoon qui permet d'automatiser mac OS, en rajoutant des raccourcis clavier, en réagissant à des événements comme le branchement d'un appareil sur un port USB, le fait de rejoindre un réseau Wifi Loi, société et organisation Un document du FBI liste les données des messageries chiffrées pouvant être récupérées (30 Nov 2021) Même si le contenu des messages n'est pas récupérable, des informations de type méta-données peuvent l'être (date de dernière connection ou de création du compte, avatar, clé publique ou token, nombre de messages postés) Conférences Devoxx France du 20 au 22 avril 2021 SunnyTech les 30 juin et 1er juillet 2022 à Montpellier Nous contacter Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs Faire un crowdcast ou une crowdquestion Contactez-nous via twitter https://twitter.com/lescastcodeurs sur le groupe Google https://groups.google.com/group/lescastcodeurs ou sur le site web https://lescastcodeurs.com/
undefined
Dec 1, 2021 • 1h 15min

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

Gilles Duboscq de OracleLabs discute des multiples facettes du projet GraalVM avec Emmanuel. La partie 2 nous emène vers GraalVM Native image, comment utiliser GraalVM en pratique en fonction des différents usages discutés, les versions, la communauté, comment c'est fait sous le capot et plein d'autres choses encore. Si vous n'avez pas écouter la partie 1, je vous encourage à le faire. Enregistré le 16 septembre 2021 Téléchargement de l'épisode LesCastCodeurs-Episode–268.mp3 Interview Ta vie, ton œuvre Twitter de Gilles Les concepts clés La plupart des concepts sont couverts dans la partie 1. La partie 2 fini sur la compilation native avant de passer à la suite. Native: comment ca fonctionne Un JIT? quel GC Quels avantages Quels inconvénients? Donc GraalVM c'est une JVM, quelles parties sont reprises de OpenJDK? Comment on l'utilise en pratique Je veux utiliser GraalVM pour mon code nodeJS, je fais comment? Je veux utiliser GraalVM comme ma JVM de mon appli Java, je fais comment? Je veux faire du native, comment je fais? * concrètement, je dois faire gaffe a quoi? GraalVM Community vs Enterprise, quelles sont les différences ? Sous le capot Comment on implémente un nouveau langage sur GraalVM? Comment on implémente Java sur Java C'est dur de supporter des nouveaux langages avec leur sémantique et leurs types != de la JVM Comment l'interprétation de langages s'optimise Comment les optimisations sont construites? Des trucs cools à raconter sur les optimisations? C'est un chemin de combien d'années? WASM vs GraalVM, comment vous voyez la "standardisation de la VM" derrière WASM? La communauté et le futur Quelle license? C'est juste Oracle? Pourquoi c'est pas dans OpenJDK? Comment la commmunauté code ensemble? Des idées sur là où vous voulez aller? Nous contacter Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs Faire un crowdcast ou une crowdquestion Contactez-nous via twitter https://twitter.com/lescastcodeurs sur le groupe Google https://groups.google.com/group/lescastcodeurs ou sur le site web https://lescastcodeurs.com/
undefined
Nov 15, 2021 • 1h 17min

LCC 267 - Lagom efface sa dette technique

Antonio et Emmanuel discutent Microsoft et Java, cryostat, Java 17, Micronaut, Quarkus, Play framework, Lagom, Amazon, CORS, CSS (si si), Hibernate Reactive, AtomicJar, canary, amplification algorithmique. Enregistré le 12 novembre 2021 Téléchargement de l'épisode LesCastCodeurs-Episode–267.mp3 News Langages Blog sur les extraits de code dans les JavaDocs (18 Oct 2021) C'est plus agréable à utiliser que les balises pre, pas besoin d'escaping (pour ), l'espace à gauche est normalisé On peut mettre en valeur certaines portion, ou remplacer par une expression régulière certains bouts Et on peut également externaliser d'où vient l'extrait de code, au lieu de le mettre dans la JavaDoc, on peut référencer une région de son vrai code. Donc au moins, on est sûr que c'est du code valide et qui compile évidemment Gunnar explique comment reprendre le code provenant de nos classes de test, pour le faire apparaître dans les JavaDocs, créant ainsi une vraie documentation "exécutable" Compress class space (27 Mars 2019) compressed object ou class pointer sur 64buts en 32 bits vis adresse relative due adresse relative, la Klass structure dans le metaspace doit être mémoire contiguë et pré allouée initialement (risque de non reallocation si mémoire libre non contiguë ) Donc le classpart et le non class part séparés dans le meta space. Klass is 32G max et contiguë et la klass part est appelé compressed class space Par défaut 1G mais configurable jusqu'à 3G. C'est virtual mémoire, juste une réservation. 1K pas classe environ donc 1000000 de classes max Que quand on utilise compressed oops Que pour Java heap size de 32G max Cryostat 2.0 (18 Oct 2021) Fournit une API sécurisée pour profiler et monitored les applis Java dans les containers avec Java Flight Recorder Cryostat peut récupérer stoquer et analyser les enregistrements flight recorder de containers Ensuite consommé par graphana ou l.appli JDK Mission Control desktop Fichier reste local au container par défaut donc pas pratique Connection via JMX directe pas pratique ni secure par défaut Cryostat récupère les recording via HTTPS A un opérateur kubernetes Etc Microsoft augmente ses investissements dans Java. (4 Nov 2021) Microsoft rejoints le JCP Travaille sur VSCode for Java avec Red Hat Est OK avec le LTS passant à 2 ans et va aider à supporter ces releases plus fréquentes Librairies Micronaut 3.1 (11 Oct 2021) support d'applications utilisant JDK 17 améliorations d'injections de dependances (repeatable scopes, primitive beans, etc) les classes générées sont plus petites et amélioration de consommation mémoire sous GraalVM routes HTTP par regexp random port binding (pour les conflits de tests) Changement certificats TLs via refresh sans arreter le serveur Kotlin coroutine supportées dans micronaut data extension de la couverture de support JPA (e.g. attribute converter) support des informers Kubernetes via le Kubernetes SDK integration Oracle Coherence sortie du mode preview Quarkus 2.4 (27 Oct 2021) Hibernate Reactive 1.0.0.Final Introducing Kafka Streams DevUI (c'est cool pour développer ca et savoir ce qui se passe Support continuous testing for multi module projects Support AWT image resize via new AWT extension Lightbend lâche Play Framework (20 Oct 2021) lightbend construit sur Scala, akka, et play framework C'est le moment de la 2.0 je crois Mais avec le cloud, ils veulent se focaliser sur les systèmes distribués Akka Open Source et Akka Serverless (leur PaaS) Laisse Play à la,communité et lightbend arrête d'investir dedans Dans une orga séparée Besoin de sponsors et de contributeurs Question: ils n'avaient pas déjà arrêté Scala? Lightbend déveste de Lagom aussi (27 Oct 2021) Lagom effacé par akka Platform'et Akka Serverless Trop de contraintes limitantes dans le framework Mais si client de Lightbend, supporté sur Lagom mais sans nouvelle fonctionnalité Infrastructure Installer et utiliser podman-machine sur macOS (19 Oct 2021) La virtualisation s'appuie sur qemu et met en place une VM dans laquelle les pods tournent. Podman Machine pour installer une VM linux avec les outils fonctionne aussi sous linux pour ceux qu ne supportent pas podman ou pour sandboxer fonctionne sous M1 homebrew pour l'installation comme docker machine avant en gros il y a aussi une belle présentation de Devoxx France Cloud Amazon déclaré la guerre à Microsoft en utilisant les arguments "Proprietaire" (28 Oct 2021) Aurora a un font qui parler protocole SQL server (Babelfish pour Aurora PostgreSQL). Et convertit les T-SQL Open source the t sql vers Postgres (debug). Sous license ASL Pas tout open sourcé encore Web CORS expliqué (12 Oct 2021) inclue images d'autres sites, c'est l'origine les cookies, credeitials etc etaient envoyés yahoo mail pouvait filer les credentials des utilisateurs une iFrame pouvait lire le contenu d'une autre iFrame (Netscape met en place le Cross-Frame Scripting) Access-Control-Allow-Origin: * est ok si pas de données privées Rendre une page HTML brute jolie en 100 caractères de CSS (16 Oct 2021) basique mais expliqué ligne par ligne E.g. 60–80 caractères pour la lecture Et 100 bytes de plus pour améliorer Data elasticsearch 8.0 will require java 17 (3 Nov 2021) definitely easier for something standalone than a library or anything that needs to share the JDK with all its apps PR GitHub Hibernate Reactive 1.0.0, ça vaut le coup ? (27 Oct 2021) PostgreSQL, MySQL, MariaDB, Db2, SQL Server, and CockroachDB bases de donnés désignées pour des interactions classiques Donc les constructions haut niveau ont tendances à être limitées par le protocole sous-jacent ce qui ne se voyait pas ou peu en JDBC utiliser HR si votre appli est déjà réactive au cœur (e.g. RESTEasy reactive dans Quarkus ou une appli Vert.x) Compareperfs acec techempower mais avec angle latence à un volume donné et et pas throughout max 20 requêtes d'affilée 20k request/s -> 35k sous 10ms de latence. C'est la valeur relative qui est intéressante Une requête et du processing pour rendre au client, peu de différence Toruhghput tend à être meilleur Amélioration de réactive sur un an Un vidéo cast sur le sujet Outillage AtomicJar se lance dans une offre Cloud (04 Nov 2021) les containers de test containers ne tournent plus en local Mais dans le cloud de AtomicJar A plus de spores source qu'une machine locale typique (2 cores et 8GB ram pour la docker machine) peut utiliser la machine quand les tests tournent Pour CI limitées vs containers ou les cloud IDE pour pas trop dépenser Pas de problème avec M1 Un petit binaire à installer (eg via curl) TestContainers et Quarkus: TestContainer Cloud fonctionne avec Dev Service (les containers lancés et configurés automatiquement) Encore en cours de développement (beta privée et on peut demander invitation) Méthodologies Canary releases ou avoir des testeurs (04 Nov 2021) canary release est une release en prod mais sur un petit sous ensemble des utilisateurs Peut aider a voir si une nouvelle fonctionnalité intéresse les utilisateurs avant de commiter sur le long terme Toujours option du retour arrière Donc peut on réduire les tests internes ? Risque de réputation ou abandon utilisateur (acquisition et rétentions sont chères) Test automatisés compréhensifs permettent le risque de canary Test exploratoires pour compléter les tests automatiques Loi, société et organisation Le droit à decompiler pour corriger des erreurs confirmé légal (21 Oct 2021) arrêt du 6 octobre 2021 Pour corriger une erreur affectant le fonctionnement y compris via la désactivation d'une fonction affectant le bon fonctionnement de l'application Influence de l'amplificartion algorithmique sur le contenu politique (21 Octo 2021) les recommendations algorithmiques amplifient-elle le contenu politique ? dans le cas des timeline organisées algorithmiquement et pas reverse chronologique Est-ce que ça varie entre partis politiques ou groups politiques Des sources de nouvelles plus amplifiées que d'autre Les élus sont plus amplifiés que le contenu politique général Pas d'amplification particulière d.individus ces d'autres au sein du même parti ???? La,droite tend à avoir une amplification plus importante que la gauche Les sources de nouvelles orientées à droite sont aussi plus amplifiées que celles de gauche La méthodologie est détaillée sur par exemple ce qu'est un journal de droite Pourquoi c'est amplifié différemment est une question plus difficile à répondre Amplification n'est pas mauvaise par défaut mais elle l'est si elle amène à un traitement préférentiel du à l'algorithme (vs comment les gens interagissent sur la plateforme) Le PDF de l'étude intégrale Conférences DevFest Lille le 19 novembre 2021 Devoxx France du 20 au 22 avril 2021 SunnyTech les 30 juin et 1er juillet 2022 à Montpellier Nous contacter Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs Faire un crowdcast ou une crowdquestion Contactez-nous via twitter https://twitter.com/lescastcodeurs sur le groupe Google https://groups.google.com/group/lescastcodeurs ou sur le site web https://lescastcodeurs.com/
undefined
Oct 22, 2021 • 1h

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

Gilles Duboscq de OracleLabs discute des multiples facettes du projet GraalVM avec Emmanuel. Dans cette première partie, nous discutons de l'histoire de GraalVM, de ses concepts fondamentaux et nous zoomons sur Truffle, Polyglot et Espresso, le support de JavaScript, Ruby, R, Python, LLVM, WASM… et Java dans GraalVM. La partie 2 nous emmènera vers GraalVM Native image, comment utiliser GraalVM en pratique en fonction des différents usages discutés, les versions, la communauté, comment c'est fait sous le capot et plein d'autres choses encore. Enregistré le 16 septembre 2021 Téléchargement de l'épisode LesCastCodeurs-Episode–266.mp3 Interview Ta vie, ton œuvre Twitter de Gilles GraalVM pour comprendre l'enjeu GraalVM GraalVM en 3 phrases Les cas d'utilisation typique Maxine VM Les concepts clés Graal le compilateur et le JIT c'est quoi un JIT Pourquoi pas basé sur HotSpot Pourquoi en Java? des cas d'utilisations préférés par GraalVM JIT vs HotSpot (et vice versa) Truffle et polyglot Java qui tourne d'autres langages, lesquels? comment ça marche, génère du byte code? Interprète? Comment les codes de différents langages interagissent? JavaScript, Ruby, R, Python, LLVM, WASM… et Java Arbre syntaxique Espresso: Java sur Java (what??!), ca veut dire quoi exactement? Quels usages? niveau de stabilité, maturité? Nous contacter Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs Faire un crowdcast ou une crowdquestion Contactez-nous via twitter https://twitter.com/lescastcodeurs sur le groupe Google https://groups.google.com/group/lescastcodeurs ou sur le site web https://lescastcodeurs.com/
undefined
Oct 13, 2021 • 1h 4min

LCC 265 - Chérie, ça va couper

Dans ce nouvel épisode news, Arnaud, Emmanuel et Audrey reviennent sur les annonces d'Oracle concernant le JDK, sur Spring One, mais aussi sur les petites fuites de données et autre panne généralisée qui ont fait l'actu récemment. Enregistré le 8 octobre 2021 Téléchargement de l'épisode LesCastCodeurs-Episode–265.mp3 News Langages Oracle annonce des LTS de deux ans Donc une LTS tous les 2 au lieu de 3 ans, ce qui fait que la prochaine sera la 21 et pas la 23. Une enquête récente auprès de développeurs montre qu'entre un quart et la moitié utilisent les release de six mois en dev, mais moins de la moitié d'entre eux en prod Mais pas de détail sur le temps de security patch support gratuit. Oracle en payant c'est 8 ans Oracle offre Oracle JDK gratuitement avec support pendant 1 LTS + 1 an (donc 3 ans) Java 17 et + Redistribution gratuite aussi. Pas de click through. Sous license NFTC ("Oracle No-Fee Terms and Conditions"). Ils en ont marre d'avoir de la compétition ? Dans JDK 18, avec le JEP 400, le charset par défaut va enfin passer à UTF–8 Autant ce n'était plus vraiment un problème pour les systèmes sour mac OS ou Linux, qui utilisent depuis assez longtemps UTF–8 par défaut, mais c'est surtout pour les systèmes Windows où c'est plus problématique Dans JDK 17, la propriété système System.getProperty("native.encoding") avait été introduite si on veut lire par exemple un fichier avec Deux approches de mitigation pour les problèmes de compatibilité, en recompilant et en utilisant cette propriété quand on ouvre un fichier en utilisant -Dfile.encoding=COMPAT sans recompilation, qui gardera le même comportement qu'en JDK 17 et avant L'équipe d'Oracle suggère de tester ses applications avec -Dfile.encoding=UTF–8 pour voir s'il n'y a pas de soucis Librairies JUnit 5.8 les classes de test peuvent être ordonnées avec la Class Order API (par nom de classe, nom d'affichage, avec @order ou random) les classes de test imbriquées peuvent l'être avec @TestClassOrder @ExtendWith peut maintenant être utilisé pour enregistrer des extensions via des champs ou des paramètres de méthode (constructeur, méthodes de test ou lifecycle) @RegisterExtension peut maintenant être utilisé sur des champs privés. assertThrowsExactly version plus stricte de assertThrows() assertDoesNotThrow() supporte les suspending functions Kotlin assertInstanceOf produit de meilleurs messages d'erreurs (remplacement pour assertTrue(obj instanceof X)) assertNull comporte maintenant le type de l'object si sa méthode toString retourne null pour éviter les messages de type expected but was @TempDir peut maintenant être utilisé pour créer plusieurs répertoires temporaires (le retour au mode par context peut être fait par configuration) fait un reset des permissions read and write du répetertoire root et de tout les répertoires contenus plutôt que d'échouer à les supprimer peut maintenant être utilisé sur des champs private Nouvel UniqueIdTrackingListener qui va générer un fichier contenant les identifiants des test executés et qui peut être utilisé pour re-executer ces tests dans une image GraalVM par exemple. Stephen Colebourne avertit les utilisateurs de Joda Time de ne pas mettre à jour la base de données des fuseaux horaires Les personnes qui sont responsables de cette base de données veulent fusionner certaines zones ensemble, par exemple, Oslo et Berlin. Alors que ces deux villes (et d'autres) n'ont pas forcément toujours eu la même heure La base est censée référencer tous les changements depuis 1970 mais en fusionnant plusieurs zones, le risque est de perdre l'historique pré–1970 Recap Spring.io : Récap Jour 1 Récap Jour 2 Récap en vidéo par Josh Long State of Spring 2021 les chiffres: 61% des sondés utilisent spring boot 94% d'entre eux pour faire des micro services 35% sur des architectures reactive 61% voudraient passer sur du natif d'ici 2 ans Nouvelle baseline pour Spring Framework 6.0 Java 17 et Jakarta EE 9 dès la 6.0 M1 de Spring Framework qui arrive Q4 2021 (GA en Q4 2022) Spring Native arrive dans Spring Framework Compilation AOT bénéficiera aux déploiements JVM aussi Spring Boot starter pour applications natives Spring Boot proposera des plugin de build et configuration native dès la 3.0 Support de RSocket and GraphQL Spring Observability passe dans Spring Framework API unifiée pour les metrics et le tracing, compatible Micrometer, Wavefront, Zipkin, Brave et OpenTelemetry intégration consistante dans tout le portfolio auto configuration dans Spring Boot 3.0 Core abstractions dans Spring Framework 6.0 Spring Native De Spring framework 5.3 à 6.0 Infrastructure (suite annonces Spring.io) Tanzu Application Platform : plateforme livrée avec toute la chaine d'outils mais configurable si les équipes préfèrent utiliser d'autres outils que ceux proposés compatible AKS, EKS, GKS et TKG. application accelerator (inspiré par spring initializer) pour générer les templates des applications qui seront ensuite déployées Spring Cloud Gateway for K8s and API Portal for VMware Tanzu Tanzu Community Edition : Version OSS de Tanzu Cloud Azure installe des agents dans son image linux et ils sont vulnérables aux auto update Lié à OMI (open management infrastructure, l'équivalent de Windows Management Infrastructure (WMI) pour les systèmes UNIX qui s'exécute en root avec tous les privilèges Dès qu'on utilise des services comme azure log, ils l'installent dans les VMs L'article dit que c'est la faute à l'open source et que seulement 20 contributeurs. C'est un peu BS. En fait si c'est installé via un service le service le mettra à jour Mais MS recommande de mettre à jour manuellement aussi Web Julia Evans nous explique CORS Julia explique comment se comporte le navigateur qui voit qu'on essaie d'accéder à une URL différente de celle du domaine de la page web chargée, et le navigateur se demande s'il a le droit de charger cette page Il va faire un "preflight" request (avec une méthode HTTP OPTIONS) pour savoir s'il a le droit ou non, puis si c'est le cas, pourra accéder à la resource Julia explique la same-origin policy (càd qu'on ne doit accéder que des resources du domaine qu'on est en train de visiter dans son navigateur) Data Kafka 3.0 Le support Java 8 et Scala 2.12 est déprécié et sera retiré en version 4 Nouvelles améliorations sur KRaft, le méchanisme de consensus qui remplacera à terme ZooKeeper Outillage TravisCI fait un petit partage de vos secrets dans toutes les PRs de vos repos par accident le problème a duré 8 jours rotation des secrets recommandé Travis a patché discretement sans disclosure initialement ce qui a fait un raffut Architecture Facebook est tombé pendant environ 6H Facebook prévoit de faire une maintenance sur son backbone (classique) Un ingénieur lance par erreur une commande qui declare l'ensemble du backbone inaccessible Oups, le système d'audit qui devrait empêcher de lancer une telle commande est buggé, la commande passe … Toute l'infra de Facebook est désormais déconnectée du net. Les avertissements BGP sont stoppées puisque l'infra FaceBook n'est plus dispo et les DNS déprovisionnent les entrées FaceBook, le monde ne peut plus accéder à FaceBook Les ingé comprennent vite le problème sauf que ils ont perdus les accès remotes aux services et la plupart de leurs systèmes internes sont KO à cause du retrait des DNS Ils envoient donc du personnel sur site dans les datacenters pour physiquement remettre en service l'infra mais l'accès physique aux machines est super protégé Ils finissent par y arriver SAUF que le fait de tout redémarrer pause un vrai challenge du fait de l'affluence du traffic qui reprend. Ils risquent de refaire tomber les datacenters du fait de la surcharge électrique. (sans parler de sproblèmes plus haut niveau comme le rechargement des caches etc) Heureusement ils ont un plan de reprise qu'ils testent régulièrement qui est plutôt prévu dans le cadre d'une tempête qui mettrait HS tout ou partie du réseau. Ce système marche bien et tout rentre dans l'ordre petit à petit, Facebook est sauvé, la planète a reperdu 5 points de QI Julia Evans explore BGP et son fonctionnement dans cet article Vu de dehors avec Cloudflare Impact non seulement du DNS mais des routes BGP elles même. Ces routes disent qu'une IP (our série d'IP) appartient à une personne donnee. Fondamentalement modèle de confiance. Intéressant de voir comment Facebook DNS down ajouté beaucoup de traffic aux serveurs de DNS principaux qui ne cachent pas le SERVFAIL Sécurité Fuite massive de données chez Twitch Quoi ? l'intégralité du code source Les revenus (sur 3 ans) de plus de 10 000 streamers Twitch ont été publiés sur le net. certains codes d'accès AWS attention c'est la partie 1, il pourrait y avoir d'autres données prochainement Comment ? Officiellement suite à une erreur dans un changement de config Officieusement c'est plus probablement un employé ou un ex employé Pourquoi ? le message sur 4chan dénonce un « un cloaque toxique dégoûtant », ce qui pourrait faire référence aux problèmes de harcèlements et de raids hostiles visant des streameurs et des streameuses en raison de leur origine ethnique, de leur orientation sexuelle ou genre. il est aussi question d'une revendication à une concurrence plus saine dans le secteur du streaming de jeu vidéo Conférences DevFest Nantes les 21 et 22 octobre 2021 DevFest Lille le 19 novembre 2021 SunnyTech les 30 juin et 1er juillet 2022 à Montpellier Nous contacter Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs Faire un crowdcast ou une crowdquestion Contactez-nous via twitter https://twitter.com/lescastcodeurs sur le groupe Google https://groups.google.com/group/lescastcodeurs ou sur le site web https://lescastcodeurs.com/
undefined
Oct 4, 2021 • 47min

LCC 264 - En direct de Devoxx France 2021

Pour cette édition 9 3/4, Les Cast Codeurs clôturent cette édition de Devoxx. Un regard sous le capot, une discussion sur les keynotes, une chanson en direct, un homme grenouille, les tendances, etc. Enregistré le 1 octobre 2021 Téléchargement de l'épisode LesCastCodeurs-Episode–264.mp3 Clôture de Devoxx France 2021 Le Dessous De(s)voxx Devoxx France 2022: Avril 20–22 2022, les 10 ans de Devoxx France Concert en direct Les keynotes Mais il est où Vincent? Les talks Les tendances Le CfP réchauffé Nos talks préférés Vos talks préférés Allez hop ! On se reconfine ! Nous contacter Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs Faire un crowdcast ou une crowdquestion Contactez-nous via twitter https://twitter.com/lescastcodeurs sur le groupe Google https://groups.google.com/group/lescastcodeurs ou sur le site web https://lescastcodeurs.com/
undefined
Sep 17, 2021 • 1h 22min

LCC 263 - Le maillot jaune du salon

Deux A et un E discutent des nouvelles de l'été et de la rentrée. #JDK17 #scala #Kotlin #spring6 #dockerdesktop #fitdesk et encore d'autres sujets. Enregistré le 10 septembre 2022 Téléchargement de l'épisode LesCastCodeurs-Episode–263.mp3 News Langages Au revoir AdopOpenJDK, bonjour Adoptium Eclipse Temurin runtimes pour la partie JDK Grosse test suite License oracle (que Adopt OpenJDK avait perdu) Plus de OpenJ9 ni GraalVM (Oracle recule) mais IBM a Rapatrié OpenJ9 sous le nom IBM Semurin Nouvelles API (backward compatibles ?) Les anciens builds ne seront pas migrés Une interview des architectes Java Java longevity: stability (not removing things), readability, ecosystem' well defined stable interfaces (JVM etc) Nouvelles fonctionnalités : qu'est que qui ne peut être fait en dehors de la plateforme Rendre Java plus extensible (Valhalla) Bloque en Java 8 Perds argent (meilleure mémoire, performance, temps de démarrage, pauses 2ms G1 etc Sécurité Loom Réactive programming pour mieux utiliser le,hardware Mais opposé à certains designs de la JVM (error report, débug, flight recorder) Loom résout le même problème mais en harmonie avec la JVM Api familières Next Vallalah , panama Tail call recursion Etc Article en passant sur l'utilisation du foreign API avec libsodium juste une mention Quoi de neuf dans Scala 3 Scala 3.0.1 Syntaxe given simplifiée (pas de with) @experimental Scala 3.1 Experimental safer exception (checked exceptions mais sans les ennuis) Warnings de compilation plus configurable Multiversal equality (des classes différentes qui peuvent être égales) Kotlin a 10 ans annoncé en 2011, 1.0 en 2016, default Android en 2017 pas theorique, problemes pragmatiques multi plateforme encore experimental, on prend notre temps ajoutent features dans le core lib plus lentement que Java prochains 10 ans: multiplatforme, langage reste relevant, reactive programming et immuabilité du front vers le back Librairies Spring 6 / SpringBoot 3 annoncé à SpringOne Java 17 et plus Intègre Spring Native Tomcat 10 min Jakarta 9 avec cassage de packages Q4 2022 Spring 5.3 et SpringBoot 2.7 seront en maintenance open source entendue Autre lien Quarkus 2.2 et 2.1 2.2 Solidification (utilisabilite, doc, corriger problèmes) Mongodb service binding RESTEasy Réactive automatiquement choisi le thread bloquant ou non bloquant Plus facile quand on vient de RESTEasy Classic Détails ici 2.1 Dev services pour keycloak SQLServer réactive a son extension Kotlin 1.5 Blog post expliquant les nouvelles modularités de quarkus platform Micronaut 3 est sorti RxJava n'est plus un dépendance transitive (choix du moteur réactive streams) Utilisent Reactor en dessous Les annotations ne sont plus héritées par défaut Support Jakarta lifecycle annotations, Jakarta inject Injection qualifiée par le generic des arguments Filtres servers plus consistant (appelés une seule fois) @Introspected ne rajoute plus les metadonnes pour GraalVM, utiliser @ReflectiveAccess Ajout des resources passe du compile time au build time donc utilisez les plugins maven de Micronaut ou faite le vous même Quelques autres breaking changes OpenRewrite règles changent le code pour migrer pour vous Infrastructure Comment debugger son script Ansible --step In-line logging Ansible-lint Ansible-console Ansible debugger Cloud Apple nous protégeras des photos pedophiles mais en ouvrant une brèche sur la sécurité de ses téléphones Une analyse techniques Il y a deux choses distinctes Détecter les images d'une base de donnée pedophile avec du hash sur le téléphone et en alertant quand trop'sonr flaggues positive (avec check humain) Ça s'appuie sur iCloud photo car sur leur cloud mais pas un filtre serveur Base de donnée Baked dans chaque iOS NeuralHash Hash résiste au ré cadrage et autres ajustement de photos Threshold secret sharing Au bout de n rapports remontés, on a capacité à reconstituer la clef de chiffrement Et un troisième mécanisme pour éviter de montrer qu'elles photos intéressent Apple Quid d'une puissance étrangère qui veut rajouter des photos de discidents? Apple dit on n'acceptera pas Où attaque sur le neural hash Détection de nudité et demande si l'nfznt veut voir avec alerte aux parents Ils se donnent quelques mois de retravail au final AWS a 15 ans demarre avec une region, un seul type d'instance et tout ephemère (pas de block storage) peu de feature et peu de details initialement prix a l'heure initialement qui etait innovant Data La guerre de la recherche - Les clients Elastic Search ne seront pas compatible avec OpenSearch Elastic vs AWS - Clash numéro ? Dans ce dernier épisode, Elastic rajoute des controles dans ses APIs clientes pour ne se connecter qu'a ses propres clusters et empêcher de les utiliser avec opensearch. Risques d'incompatibilité Manque de chance ce changement bloque aussi l'utilisation de la version OSS d'elastic-search. De son coté AWS promet de faire son possible pour fournir des drivers qui resteront compatibles Elasticsearch 7.10.2 (la version à partir de laquelle ils ont forké) et OpenSearch Bref la guerre continue … Outillage AtomicJar release TestContainers 1.16 https://www.atomicjar.com/2021/07/testcontainers–1–16–0-release/ Test Containers 1.16.0 est la première release faite par AtomicJar, la société créée par les fondateurs du projet. Meilleure compatibilité Apple M1 Couche de transport utilise Apache HTTP Client 5 au lieu de OKHTTP pour éviter la malediction Kotlin Meilleure stabilité et compatibilité sur Windows pour process natifs Windows et WSL 2 docker.host peut etre configuré dans $HOME/.testcontainers.properties Aussi Support Podman amélioré récemment Docker introduit un nouveau système d'abonnement avec Docker Business et différents niveaux: perso, pro, entreprise etc donc pour les boites de plus de 250 personnes ou qui font 10 millions, tu dois payer pour Docker Desktop Des articles paraissent listant les alternatives à Docker Desktop Sur l'impact macOS How Docker broke in half Les différentes manières de déclarer les dépendances dans son projet Gradle En particulier, les différences entre api, implementation, runtimeOnly, compileOnly, compileOnlyApi Avec des exemples concrets pour bien illustre ces différents scopes. Gradle regroupe les dépendances dans des ensembles appelés des "configurations". Ces configurations définissent le classpath lors de la compilation, ou le classpath pour le runtime lorsque votre code s'exécute. Gradle définit 3 types de configuration : api, implementation et runtimeOnly La configuration "api" est utilisée pour le classpath compilation et runtime et est exposé aux consommateurs de l'API aussi pour le classpath de compilation et runtime La configuration "implementation" est utilisée pour le classpath de compilation et runtime, mais est exposée pour le consommateur de l'API que pour le classpath au runtime La configuration "runtimeOnly" n'est utilisée que pour le classpath au runtime La configuration "compileOnly" est utilisée pour le classpath de compilation, mais n'est pas exposée pour les consommateurs Enfin la configuration "compileOnlyApi" est utilisée pour le classpath de compliation et est exposée au consommateurs à la compilation de leur code quand les metadata Gradle sont utilisées Méthodologies Opinion sur Googlespeak et les pratiques anti concurrentielles Certains dont l'auteur voient Google utiliser Google search pour placer hautement leur propres services alternatifs. Google flight etc Et les Googlers avec qui il interagissait trouvait ça « absurde » de penser ça. Chercher un hôtel Étude montre que Google offre 41% de sa première page à ses propres propriétés (inclus direct answers ) Direct answer est mis rapide pour l'utilisateur mais prend le contenu 3rd party ( Wikipedia, IMDb etc) et nous fait rester sur une page Google. Googlespeak d'après Orwell. Si le langage ne permet pas d'exprimer , on ne pense pas aux choses. Pas dominant mais succès. Pas barrière à l'entrée , marché, effet réseau qui sont taboo dans un contexte de tension antitrust Encourage à réfréner sa communication écrite. Comme beaucoup de sociétés américaines à cause du processus de discovery Market share -> user preference Apple et epic ont levés des doc similaires mais Apple n'était pas gardé dans sa comm interne. Autour de l'app store. Google dans ses formation mention non monopoly car beaucoup de compétiteurs. Et se defini en termes très large et donc avec de la compétition. (Dans la pub et dans la recuperation d'information. Ils ne font pas d'analyse de marchés (sur les marchés dominants) quand demandés par le congrès. 65% des recherches n'entraînent pas un clic sur un site externe - valeur réfutée par Google C'est une réaction à la judiciarusarion de la vie des entreprises. Loi, société et organisation Matt Asay quitte AWS et reflecte sur l'open source chez AWS pleins de petites equipes et pas de décisions top down en tous cas pas pour open source Un langage specifique a Amazon pour convaincre Les Leadership Principles tendent à 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'est une équipe de 12 sur 200 equipes ca ne m'étonnes pas trop 🙂 L'Open Source au secours du développeur (et de l'architecte) ?, un retour d'expérience très personnel mais instructif pour ceux qui souhaiteraient se lancer … Pourquoi l'Open Source ? Par où commencer ? Le choix du premier projet pour sa première contribution? (Le syndrome de l'imposteur) La première contribution Rythme de travail Outils de l'épisode Fit Desk Antonio passe au Fit Desk pour travailler en pédalant Promis, il écrira un blog dans 4/6 mois avec du feedback Rubrique débutant RISC vs CISC CISC roi quand la mémoire est chère, on crée des instructions haut niveau plus complexes RISC paye en mémoire mais simplifie la chaîne de travail (instructions de taille fixe) RISC plus d'opérations et donc de CPU clock mais pipelining possible RISC compensé par plus de registers et par la compression d'instructions set register mémoire interne CPU de taille fixe CISC fait du hardware hyper threading RISC philosophiquement fait travailler les compilateurs beaucoup plus mais on ne code plus en assembleur Conférences Crowdcast sur devfest Lille et CloudNord par Emmanuel Demey Pas de Devoxx Belgique en 2021 Nous contacter Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs Faire un crowdcast ou une crowdquestion Contactez-nous via twitter https://twitter.com/lescastcodeurs sur le groupe Google https://groups.google.com/group/lescastcodeurs ou sur le site web https://lescastcodeurs.com/

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