Artwork

Content provided by Emmanuel Bernard, Guillaume Laforge, Vincent Massol, Antonio Goncalves, Arnaud Héritier, Emmanuel Bernard, Guillaume Laforge, Vincent Massol, Antonio Goncalves, and Arnaud Héritier. All podcast content including episodes, graphics, and podcast descriptions are uploaded and provided directly by Emmanuel Bernard, Guillaume Laforge, Vincent Massol, Antonio Goncalves, Arnaud Héritier, Emmanuel Bernard, Guillaume Laforge, Vincent Massol, Antonio Goncalves, and Arnaud Héritier or their podcast platform partner. If you believe someone is using your copyrighted work without your permission, you can follow the process outlined here https://player.fm/legal.
Player FM - Podcast App
Go offline with the Player FM app!

LCC 314 - 1000 fois 1000 dépendances

1:23:11
 
Share
 

Manage episode 429188158 series 43620
Content provided by Emmanuel Bernard, Guillaume Laforge, Vincent Massol, Antonio Goncalves, Arnaud Héritier, Emmanuel Bernard, Guillaume Laforge, Vincent Massol, Antonio Goncalves, and Arnaud Héritier. All podcast content including episodes, graphics, and podcast descriptions are uploaded and provided directly by Emmanuel Bernard, Guillaume Laforge, Vincent Massol, Antonio Goncalves, Arnaud Héritier, Emmanuel Bernard, Guillaume Laforge, Vincent Massol, Antonio Goncalves, and Arnaud Héritier or their podcast platform partner. If you believe someone is using your copyrighted work without your permission, you can follow the process outlined here https://player.fm/legal.

Emmanuel, Guillaume et Arnaud discutent des nouvelles de l’été. JEPs, transactional outbox pattern avec Spring, LLM dans Chrome, faille polyfill.io, TOTP, congés illimités et IDE payant ou pas payant ?

Enregistré le 12 juillet 2024

Téléchargement de l’épisode LesCastCodeurs-Episode-314.mp3

News Langages

Les fonctionnalités de JDK 23 ont été figées début Juin (release prévue en septembre) https://openjdk.org/projects/jdk/23/ https://www.youtube.com/watch?v=kzjGp7LmW0I

  • JEPs finales:
    • 467: Markdown Documentation Comments
    • 471: Deprecate the Memory-Access Methods in sun.misc.Unsafe for Removal
    • 474: ZGC: Generational Mode by Default
  • JEPs en incubation / preview
    • 455: Primitive Types in Patterns, instanceof, and switch (Preview)
    • 466: Class-File API (Second Preview)
    • 469: Vector API (Eighth Incubator)
    • 473: Stream Gatherers (Second Preview)
    • 476: Module Import Declarations (Preview)
    • 477: Implicitly Declared Classes and Instance Main Methods (Third Preview)
    • 480: Structured Concurrency (Third Preview)
    • 481: Scoped Values (Third Preview)
    • 482: Flexible Constructor Bodies (Second Preview)
Librairies

Le transactional outbox pattern avec Spring Boot https://www.wimdeblauwe.com/blog/2024/06/25/transactional-outbox-pattern-with-spring-boot/

  • transactional outbox permet d’éviter des 2PC ou des désynchronisations de resources: typiquement un commit dans une base et un envoie de message dans un bus
  • on ecrit le message dans une table de la base de données, et un process séparé récupère les messages et les envoient dans le bus
  • implémentation utilise Spring Integration
  • dans l’article, la seconde resource est l’envoie d’email
  • montre une approche de tests
  • le flow descrit pas psring integration est pas super trivial a lire quand on est pas familier mais cela poll la table toutes les secondes et envoie email et si succes de l’appel de service, vide le message de la table
  • Deuxieme exemple avec Spring modulith qui a un event bus interne qui peut être persisté
  • décrit les differences avec spring integration et les limites de l’approche modulith (message order, retry etc)

Comment tester des valeurs de propriétés différentes dans un test Quarkus https://quarkus.io/blog/overriding-configuration-from-test-code/

  • on a tendance a ne pas tester les propriétés de config
  • ce blog montre 5 (enfin 4 utiles) façons de le faire avec Quarkus.
  • les profils de test, mocker l’objet de config, les test components (experimental), l’injection dans les constructeurs

Quarkus 3.12 https://quarkus.io/blog/quarkus-3-12-0-released/

  • centralisation des configs TLS
  • support pour le load shedding (reject requests on service overload)
  • événements JFR specific a Quarkus
  • native image agent
  • support Spring Boot 3 (compat layer)
  • Support Kotlin 2
  • etc
Cloud

On vous parlait dans un épisode précédent de ce problème de coûts S3 sur des requêtes non autorisées. C’est Graphana Loki qui a mis ce problème sous les projecteurs https://grafana.com/blog/2024/06/27/grafana-security-update-grafana-loki-and-unintended-data-write-attempts-to-amazon-s3-buckets/

  • le problème venait des valeurs par défaut des buckets déclarés dans le chart helm de Loki, en particulier celui nommé ‘chunks’
Data et Intelligence Artificielle

Guillaume avait partagé l’information sur la disponibilité prochaine d’un mini modele LLM dans chrome. C’est maintenant une réalité et vous pouvez le tester.

https://ai-sdk-chrome-ai.vercel.app/

  • Nécessite Chrome 127 (version stable à partir de mi-juillet)
  • Utilise le SDK Vercel AI

Guillaume nous parle de toutes les nouveautés liées au modèle Gemini de Google dans la dernière release de LangChain4j https://glaforge.dev/posts/2024/07/05/latest-gemini-features-support-in-langchain4j/

Outillage

1% des utilisateurs de Maven Central utilisent 83% de sa bande passante. Installez un repository manager qui fait proxy (et cela pour tous les types de dépendances)!!!

https://www.sonatype.com/blog/maven-central-and-the-tragedy-of-the-commons

  • rien n’est réellement gratuit et l’abus d’une minorité peut nuire à l’ensemble. Cela fait maintenant plus de 20 ans que les communautés le répète: installer un gestionnaire de dépendances dans votre infrastructure (nexus, artifactory, CodeArtifact, …). En plus de protéger le bien commun cela vous permet de raffiner le filtrage des dépendances, d’assurer la reproductibilité de vos builds, d’optimiser les performances (et réduire les coûts) en ne téléchargeant que depuis votre propre infrastructure, etc …
  • Maven Central est un commun qui ne coute rien à l’utilisteur
  • mais qui est indispensable à tous
  • 1000 milliards de téléchargements l’année dernière
  • 83% de la bande passante consommé par 1% des IPs
  • Beaucoup des ces IP viennent des companies les plus larges
  • proxy pour réduire charge sur central, réduire couts ingress/egress
  • ils vont implementer un mécanisme de throttling
  • question est-ce que la concentration des IPs veut juste dire que c’est le dernier noeud mais que cacher n’est pas effectif pour eux et qu’il y a des milliers de clients derrière une IP?
  • le trotting ferait mal
  • et le proxy ne marche plus dans un monde ou le dev est dans le cloud et distribue géographiquement

Comment mettre en place backstage, ici avec un projet Spring Boot utilisant CircleCi, Renovate, SonarCloud…

https://piotrminkowski.com/2024/06/13/getting-started-with-backstage/

  • Cet article explique comment utiliser backstage pour fournir à vos équipes un template d’une application spring-boot.
  • Elle est automatiquement crée sous forme d’un repository git(hub) avec les integrations classiques pour gérer la CI (via CircleCI), la qualité (via SonarCloud), la mise à jour de dépendances (via Renovate) et bien sur son référencement sur le portail backstage.
  • tutoriel tres complet
  • tres facilement remplacable pour un project avec votre technologie preferee (pas specifique a Spring Boot, ou Java)
Architecture

Que se passe t’il quand vous faites un push sur GitHub? https://github.blog/2024-06-11-how-we-improved-push-processing-on-github/

  • GitHub explique comment ils ont amélioré leur architecture, notamment en mettant en place Kafka pour distribuer les actions qui découlent d’un push sur GitHub.
  • paralelisation des taches (avant sequentiel)
  • limitation des dependances entre etapes effectuées lors d’un push
  • plus de taches peuvent faire un retry
  • un classique de decoupling via un EDA
Sécurité

Attaque du CDN polyfill.io https://sansec.io/research/polyfill-supply-chain-attack

  • polyfill c’est un support de nouvelles fonctionalites dans les ancien navigateurs
  • servi par cdn notamment
  • une societe chinoise a achete le domaine et le github
  • et injecte du malware qui pointe sur des serveurs qui servent le malware selectivement (device, admin ou pas, heure de la journée)
  • Fastly et Cloudflare on des deploiements alternatiuve

Une faille de sécurité, de type Remote Code Execution, vieille de 10ans, dans CocoaPods, un gestionnaire de dépendances très utilisé dans le monde Apple (macOS et iOS)

https://securityboulevard.com/2024/07/cocoapods-apple-vulns-richixbw/

  • https://cocoapods.org/ / https://cocoapods.org/ est un gestionnaire de dépendances pour les projets Xcode. Les dependances (Pods) sont publiées sous forme de Specs qui sont référencées dans un Specs Repo (une sorte de Maven central mais seulement avec des metadonnées)
  • CVE-2024-38366 est une vulnérabilité de type remote code execution avec un score CVSS de 10
  • La faille existait depuis 10 ans et a été corrigée en Sept 2023. Elle permettait d’avoir un accès root sur trunk.cocoapods.org qui stock les Specs. Elles auraient donc pu être modifiées sans que les auteurs ne s’en apperçoivent.
  • Pas de preuve pour l’instant que la faille ait été exploitée

Mieux comprendre la double authentification avec TOTP

https://hendrik-erz.de/post/understanding-totp-two-factor-authentication-eli5

  • Cet article revient sur le fonctionnement de TOTP et comment l’implementer avec des exemples en python
  • the QR code est une URL qui contient: le secret en base 32. le nom du totp, qui a fournit le TOTP, combien de chiffres et la durée de vie du TOTP
  • pour generer les chiffres, prends le secret, le temps et hash le tout, prendre 4 bytes et les convertir le chiffres
  • typiquement le serveur genere les deux d’avant, les deux d’apres et le courant pour comparer
Loi, société et organisation

L’équipe Apache Maven gagne le troisième prix BlueHats https://nlnet.nl/bluehatsprize/2024/3.html

  • le projet remporte un gain de 10000€. Ce prix est organisé par le gouvernement français afin de récompenser les projets open sources les plus impactants.

La clause de congés illimités en Europe

https://www.osborneclarke.com/insights/why-your-unlimited-vacation-policy-may-be-of-limited-use-in-europe

  • Les politiques de congés illimités, populaires aux États-Unis, ne sont pas aussi avantageuses en Europe.
  • En Europe, les employeurs doivent suivre les congés pris pour respecter les minima légaux de quatre semaines par an donc ils ne peuvent pas economiser sur le faire de ne plus les gérer.
  • Les congés illimités permettent aux US de ne plus à devoir les payer au départ de l’employé. En Europe les employeurs doivent payer les congés non utilisés lors de la fin du contrat.
  • Les employés européens pourraient prendre davantage de congés, car ils sont mieux protégés contre le licenciement.
  • Les jours de maladie sont plus cadrés en europe. Un employé qui souffre d’une maladie longue pourrait utiliser les congés illimités mais ce ne sont pas les même règles qui s’appliquent

OpenDNS n’est plus disponible en France et au Portugal

https://support.opendns.com/hc/en-us/articles/27951404269204-OpenDNS-Service-Not-Available-To-Users-In-France-and-Portugal

  • A priori Cisco qui opère openDNS en a marre des demandes de restrictions spécifiques à nos pays et préfère donc retirer entièrement l’accès au service plutôt que de se conformer à la nième demande de restrictions qui faisait suite à la plainte du groupe Canal+ portant sur l’accès à des sites illicites de streaming pour du sport
Ask Me Anything

Salut ! Êtes-vous plutôt IDE payants (ex : IJ Ultimate, ou des plugins payants), ou ne jurez-vous que par des outils gratuits ? Un peu des deux ? Si adaptes du payant, ça ne vous déprime pas qu’un nombre considérable d’employeurs rechignent à nous payer nos outils ? Que “de toute façon VSCode c’est gratuit” (à prononcer avec une voix méprisante) ? Quid du confort, ou de la productivité et/ou qualité accrue quand on maîtrise de tels outils ? Merci !

Conférences

La liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs :

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/

  continue reading

314 episodes

Artwork
iconShare
 
Manage episode 429188158 series 43620
Content provided by Emmanuel Bernard, Guillaume Laforge, Vincent Massol, Antonio Goncalves, Arnaud Héritier, Emmanuel Bernard, Guillaume Laforge, Vincent Massol, Antonio Goncalves, and Arnaud Héritier. All podcast content including episodes, graphics, and podcast descriptions are uploaded and provided directly by Emmanuel Bernard, Guillaume Laforge, Vincent Massol, Antonio Goncalves, Arnaud Héritier, Emmanuel Bernard, Guillaume Laforge, Vincent Massol, Antonio Goncalves, and Arnaud Héritier or their podcast platform partner. If you believe someone is using your copyrighted work without your permission, you can follow the process outlined here https://player.fm/legal.

Emmanuel, Guillaume et Arnaud discutent des nouvelles de l’été. JEPs, transactional outbox pattern avec Spring, LLM dans Chrome, faille polyfill.io, TOTP, congés illimités et IDE payant ou pas payant ?

Enregistré le 12 juillet 2024

Téléchargement de l’épisode LesCastCodeurs-Episode-314.mp3

News Langages

Les fonctionnalités de JDK 23 ont été figées début Juin (release prévue en septembre) https://openjdk.org/projects/jdk/23/ https://www.youtube.com/watch?v=kzjGp7LmW0I

  • JEPs finales:
    • 467: Markdown Documentation Comments
    • 471: Deprecate the Memory-Access Methods in sun.misc.Unsafe for Removal
    • 474: ZGC: Generational Mode by Default
  • JEPs en incubation / preview
    • 455: Primitive Types in Patterns, instanceof, and switch (Preview)
    • 466: Class-File API (Second Preview)
    • 469: Vector API (Eighth Incubator)
    • 473: Stream Gatherers (Second Preview)
    • 476: Module Import Declarations (Preview)
    • 477: Implicitly Declared Classes and Instance Main Methods (Third Preview)
    • 480: Structured Concurrency (Third Preview)
    • 481: Scoped Values (Third Preview)
    • 482: Flexible Constructor Bodies (Second Preview)
Librairies

Le transactional outbox pattern avec Spring Boot https://www.wimdeblauwe.com/blog/2024/06/25/transactional-outbox-pattern-with-spring-boot/

  • transactional outbox permet d’éviter des 2PC ou des désynchronisations de resources: typiquement un commit dans une base et un envoie de message dans un bus
  • on ecrit le message dans une table de la base de données, et un process séparé récupère les messages et les envoient dans le bus
  • implémentation utilise Spring Integration
  • dans l’article, la seconde resource est l’envoie d’email
  • montre une approche de tests
  • le flow descrit pas psring integration est pas super trivial a lire quand on est pas familier mais cela poll la table toutes les secondes et envoie email et si succes de l’appel de service, vide le message de la table
  • Deuxieme exemple avec Spring modulith qui a un event bus interne qui peut être persisté
  • décrit les differences avec spring integration et les limites de l’approche modulith (message order, retry etc)

Comment tester des valeurs de propriétés différentes dans un test Quarkus https://quarkus.io/blog/overriding-configuration-from-test-code/

  • on a tendance a ne pas tester les propriétés de config
  • ce blog montre 5 (enfin 4 utiles) façons de le faire avec Quarkus.
  • les profils de test, mocker l’objet de config, les test components (experimental), l’injection dans les constructeurs

Quarkus 3.12 https://quarkus.io/blog/quarkus-3-12-0-released/

  • centralisation des configs TLS
  • support pour le load shedding (reject requests on service overload)
  • événements JFR specific a Quarkus
  • native image agent
  • support Spring Boot 3 (compat layer)
  • Support Kotlin 2
  • etc
Cloud

On vous parlait dans un épisode précédent de ce problème de coûts S3 sur des requêtes non autorisées. C’est Graphana Loki qui a mis ce problème sous les projecteurs https://grafana.com/blog/2024/06/27/grafana-security-update-grafana-loki-and-unintended-data-write-attempts-to-amazon-s3-buckets/

  • le problème venait des valeurs par défaut des buckets déclarés dans le chart helm de Loki, en particulier celui nommé ‘chunks’
Data et Intelligence Artificielle

Guillaume avait partagé l’information sur la disponibilité prochaine d’un mini modele LLM dans chrome. C’est maintenant une réalité et vous pouvez le tester.

https://ai-sdk-chrome-ai.vercel.app/

  • Nécessite Chrome 127 (version stable à partir de mi-juillet)
  • Utilise le SDK Vercel AI

Guillaume nous parle de toutes les nouveautés liées au modèle Gemini de Google dans la dernière release de LangChain4j https://glaforge.dev/posts/2024/07/05/latest-gemini-features-support-in-langchain4j/

Outillage

1% des utilisateurs de Maven Central utilisent 83% de sa bande passante. Installez un repository manager qui fait proxy (et cela pour tous les types de dépendances)!!!

https://www.sonatype.com/blog/maven-central-and-the-tragedy-of-the-commons

  • rien n’est réellement gratuit et l’abus d’une minorité peut nuire à l’ensemble. Cela fait maintenant plus de 20 ans que les communautés le répète: installer un gestionnaire de dépendances dans votre infrastructure (nexus, artifactory, CodeArtifact, …). En plus de protéger le bien commun cela vous permet de raffiner le filtrage des dépendances, d’assurer la reproductibilité de vos builds, d’optimiser les performances (et réduire les coûts) en ne téléchargeant que depuis votre propre infrastructure, etc …
  • Maven Central est un commun qui ne coute rien à l’utilisteur
  • mais qui est indispensable à tous
  • 1000 milliards de téléchargements l’année dernière
  • 83% de la bande passante consommé par 1% des IPs
  • Beaucoup des ces IP viennent des companies les plus larges
  • proxy pour réduire charge sur central, réduire couts ingress/egress
  • ils vont implementer un mécanisme de throttling
  • question est-ce que la concentration des IPs veut juste dire que c’est le dernier noeud mais que cacher n’est pas effectif pour eux et qu’il y a des milliers de clients derrière une IP?
  • le trotting ferait mal
  • et le proxy ne marche plus dans un monde ou le dev est dans le cloud et distribue géographiquement

Comment mettre en place backstage, ici avec un projet Spring Boot utilisant CircleCi, Renovate, SonarCloud…

https://piotrminkowski.com/2024/06/13/getting-started-with-backstage/

  • Cet article explique comment utiliser backstage pour fournir à vos équipes un template d’une application spring-boot.
  • Elle est automatiquement crée sous forme d’un repository git(hub) avec les integrations classiques pour gérer la CI (via CircleCI), la qualité (via SonarCloud), la mise à jour de dépendances (via Renovate) et bien sur son référencement sur le portail backstage.
  • tutoriel tres complet
  • tres facilement remplacable pour un project avec votre technologie preferee (pas specifique a Spring Boot, ou Java)
Architecture

Que se passe t’il quand vous faites un push sur GitHub? https://github.blog/2024-06-11-how-we-improved-push-processing-on-github/

  • GitHub explique comment ils ont amélioré leur architecture, notamment en mettant en place Kafka pour distribuer les actions qui découlent d’un push sur GitHub.
  • paralelisation des taches (avant sequentiel)
  • limitation des dependances entre etapes effectuées lors d’un push
  • plus de taches peuvent faire un retry
  • un classique de decoupling via un EDA
Sécurité

Attaque du CDN polyfill.io https://sansec.io/research/polyfill-supply-chain-attack

  • polyfill c’est un support de nouvelles fonctionalites dans les ancien navigateurs
  • servi par cdn notamment
  • une societe chinoise a achete le domaine et le github
  • et injecte du malware qui pointe sur des serveurs qui servent le malware selectivement (device, admin ou pas, heure de la journée)
  • Fastly et Cloudflare on des deploiements alternatiuve

Une faille de sécurité, de type Remote Code Execution, vieille de 10ans, dans CocoaPods, un gestionnaire de dépendances très utilisé dans le monde Apple (macOS et iOS)

https://securityboulevard.com/2024/07/cocoapods-apple-vulns-richixbw/

  • https://cocoapods.org/ / https://cocoapods.org/ est un gestionnaire de dépendances pour les projets Xcode. Les dependances (Pods) sont publiées sous forme de Specs qui sont référencées dans un Specs Repo (une sorte de Maven central mais seulement avec des metadonnées)
  • CVE-2024-38366 est une vulnérabilité de type remote code execution avec un score CVSS de 10
  • La faille existait depuis 10 ans et a été corrigée en Sept 2023. Elle permettait d’avoir un accès root sur trunk.cocoapods.org qui stock les Specs. Elles auraient donc pu être modifiées sans que les auteurs ne s’en apperçoivent.
  • Pas de preuve pour l’instant que la faille ait été exploitée

Mieux comprendre la double authentification avec TOTP

https://hendrik-erz.de/post/understanding-totp-two-factor-authentication-eli5

  • Cet article revient sur le fonctionnement de TOTP et comment l’implementer avec des exemples en python
  • the QR code est une URL qui contient: le secret en base 32. le nom du totp, qui a fournit le TOTP, combien de chiffres et la durée de vie du TOTP
  • pour generer les chiffres, prends le secret, le temps et hash le tout, prendre 4 bytes et les convertir le chiffres
  • typiquement le serveur genere les deux d’avant, les deux d’apres et le courant pour comparer
Loi, société et organisation

L’équipe Apache Maven gagne le troisième prix BlueHats https://nlnet.nl/bluehatsprize/2024/3.html

  • le projet remporte un gain de 10000€. Ce prix est organisé par le gouvernement français afin de récompenser les projets open sources les plus impactants.

La clause de congés illimités en Europe

https://www.osborneclarke.com/insights/why-your-unlimited-vacation-policy-may-be-of-limited-use-in-europe

  • Les politiques de congés illimités, populaires aux États-Unis, ne sont pas aussi avantageuses en Europe.
  • En Europe, les employeurs doivent suivre les congés pris pour respecter les minima légaux de quatre semaines par an donc ils ne peuvent pas economiser sur le faire de ne plus les gérer.
  • Les congés illimités permettent aux US de ne plus à devoir les payer au départ de l’employé. En Europe les employeurs doivent payer les congés non utilisés lors de la fin du contrat.
  • Les employés européens pourraient prendre davantage de congés, car ils sont mieux protégés contre le licenciement.
  • Les jours de maladie sont plus cadrés en europe. Un employé qui souffre d’une maladie longue pourrait utiliser les congés illimités mais ce ne sont pas les même règles qui s’appliquent

OpenDNS n’est plus disponible en France et au Portugal

https://support.opendns.com/hc/en-us/articles/27951404269204-OpenDNS-Service-Not-Available-To-Users-In-France-and-Portugal

  • A priori Cisco qui opère openDNS en a marre des demandes de restrictions spécifiques à nos pays et préfère donc retirer entièrement l’accès au service plutôt que de se conformer à la nième demande de restrictions qui faisait suite à la plainte du groupe Canal+ portant sur l’accès à des sites illicites de streaming pour du sport
Ask Me Anything

Salut ! Êtes-vous plutôt IDE payants (ex : IJ Ultimate, ou des plugins payants), ou ne jurez-vous que par des outils gratuits ? Un peu des deux ? Si adaptes du payant, ça ne vous déprime pas qu’un nombre considérable d’employeurs rechignent à nous payer nos outils ? Que “de toute façon VSCode c’est gratuit” (à prononcer avec une voix méprisante) ? Quid du confort, ou de la productivité et/ou qualité accrue quand on maîtrise de tels outils ? Merci !

Conférences

La liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs :

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/

  continue reading

314 episodes

All episodes

×
 
Loading …

Welcome to Player FM!

Player FM is scanning the web for high-quality podcasts for you to enjoy right now. It's the best podcast app and works on Android, iPhone, and the web. Signup to sync subscriptions across devices.

 

Quick Reference Guide