POPULARITY
How do you design music education that's engaging for beginners and experienced users? That's the challenge Dennis DeSantis faces as head of Ableton's Learning Team. In this conversation with Craig Schuftan, Dennis talks about the importance of play and interactivity in learning and making music, as well as the value of simplifying complex concepts for beginners. Along the way we hear about his own musical journey, the power of diverse influences and debates around pitch and tuning systems. Explore further: Learning Music Learning Synths Making Music: 74 Strategies for Electronic Producers by Dennis DeSantis Première Poème Symphonique, György Ligeti 1963 Patrice Rushen - Forget Me Nots (Official Video) Our Band Could Be Your Life by Michael Azzerad Keep up with Dennis DeSantis on Instagram, YouTube and via his website. Tell us what you think of this episode: doingmusic@ableton.com Doing Music is brought to you by Ableton. Follow us on TikTok and Instagram.
It is one of the highest and most prestigious honors given each year recognizing school districts who are transforming education through the use of cutting-edge technology like artificial intelligence in the classroom. Competing against school districts from all corners of the world, Jordan School District was a top 2024 winner in the International Society for ...continue reading "Episode 253: Jordan School District Receives Top International Award for Use of Cutting-Edge Technology, Meet Members of the Digital Learning Team"
Thank you for your support! Need a hand with HOP? Get in touch at thehopnerd@gmail.com or check out thehopnerd.com! The HOP Nerd LLC can help you operationalize Human & Organizational Performance!
In my role as the Head of Knowledge Management at PwC Switzerland, I bring together strategic vision and a commitment to continuous innovation, all while ensuring focused execution. Working closely with leadership and practice groups, my main focus is on developing, implementing, and constantly improving knowledge processes and practice support tools that align with the firm's business objectives. By doing so, I enable the firm and its employees to generate more value and fully leverage knowledge as a strategic asset. With over 11 years of professional experience, I am a seasoned knowledge management expert. I hold a Bachelor of Laws (LL.B.) degree and I am also certified as a Knowledge Manager (CKM). Throughout my career, I have successfully coordinated partners and collaborators on complex projects, demonstrating a keen understanding of processes, structures, and projects as a whole. Additionally, I possess strong mediation skills, allowing me to effectively navigate differing opinions and approaches among leaders. I am skilled at building consensus and alignment, and I am known for creating action-oriented plans that support business objectives. My professional style is characterized by energy, passion, and a proactive approach. I am highly motivated, solution-oriented, and have a sense of humor that helps foster a positive impact both within and outside of the organization.
Dan Ring is an expert in empowering VFX artists with cutting-edge research. He began his 20-year career by creating tech to analyze surgery videos (so that no one else would have to), then moved to Foundry to develop CopyCat, the Nuke machine-learning tool that applies corrections to sequences based on a small number of frames. Now, Dan has joined Chaos to help implement machine learning in its visualization products. In this conversation with Chris, Dan covers just about every aspect of modern CG, including generative AI, Gaussian Splats and NeRFs, the surprising VFX roles that AI might not replace, and the steps Chaos is taking to ensure users have access to helpful but unintrusive tools that are ethically sound.
In this episode of the podcast, we catch up with Patrick Clancey. Patrick is a graduate in Darden's Executive MBA Class of 2020, and we talk with Patrick about this decision to pursue an MBA, what led him to Darden, how his Learning Team shaped his Darden experience, how he balanced work, life and school as an Executive MBA student, what he's been up to since graduation and more.
To celebrate our 50th episode of the Makin' It Personal Podcast, the SCDE Personalized Learning Team shares their favorite student-centered learning strategies, tools, and resources in the form of gifts! Tune in and check out the links below to access the "gifts" mentioned! Happy Holidays! Sarah G's Gift: Snailed It Mindset Video Kristen's Gift: Classroom Systems For Feedback & Conferencing (examples) Dr. Sarah B's Gift: Student Self-Assessment Based on Code of Cooperation Lindsay's Gift: Measuring PCBL Toolkit & 4.0 Crosswalk Tool Heather's Gift: UDL PLC brainstorming Tool Nadine's Gift: Analyzing Student Work (ASW) Tool Keri's Gift: Protocol for Establishing a Class Vision Subscribe, share, & access more resources to help you on your personalized learning journey here: https://linktr.ee/scpersonalize #PersonalizeSC
Halloween is around the corner and that means kids of every age will be out repping their best costumes. This week we welcome Waves Early Learning Director Gina Wilson and Waves Early Interventionist Jen Choate to help you prep your child for the experience! With host Trent and co-host Christy Webb, the group started off by sharing their own experience with Halloween. Gina and Jen remember prepping their kids when they were younger for talking with strangers, getting candy, and exploring the neighborhood! We hear Christy share her plans for Halloween after she finishes her shift at Goodwill, and also how she's hit her 3 year with Goodwill this month. As we listen to the group share their stories we also hear the best way to prepare for Halloween is to practice! Gina and Jen give helpful tips on practicing scenarios with your child before the big night and going through several situations. Listen to the full podcast for details and share the episode with anyone who might find the conversation helpful! Want more examples of preparing for Halloween? Head to Instagram and follow the Waves Early Learning account @earlylearningwaves or follow us on Facebook at Waves, Inc. The Waves Early Learning team regularly shares helpful tips on countless topics that can be used for any child! This podcast is made possible through partnerships with Spread the Positive, TN's Department of Intellectual and Developmental Disabilities, and the Community Foundation of Middle TN. If you like what you hear, share it with a friend and leave a review on any streaming service. Got an idea for a guest, email us at podcast@wavesinc.com.
Testament to their belief that relationships are the source of results, Phil Burgess and Felix Koch have worked together for more than a decade.As joint Managing Directors of marketing services agency, C Space, their people-centric leadership approach to culture transformation led to various awards including ‘Best Place to Work', ‘Best Agency' and ‘Learning Team of the Year' at the Learning Performance Institute's Global Learning Awards.They were jointly listed on Management Today's ‘Agents of Change' Power List for men championing gender equity in business and in 2022, Felix was listed on the InsideOut LeaderBoard which celebrates senior-leader role models who are working to smash the stigma of mental ill-health in workplaces.As Chief People Officer and European CEO of C Space, they commissioned an award-winning mental health and connection programme which had a phenomenal impact on participant wellbeing and their sense of connection.This inspired them to leave their corporate careers to set up WITHIN where they now work with leaders to drive results by creating cultures of connection where people can thrive. Their award-winning, group-based approach strengthens relationships, significantly improving wellbeing and delivering sustained impact over time.The topics we covered: How people feel connection and disconnection in the workplace. Where employee disconnection might show up in the bottom line. What positive impact working on connection could bring. How people's best efforts often miss the mark. And what you can do that will really make a difference.If you want to hear more from Phil and Felix sign up to their free workshop:Unlearning 3 leadership habits that prevent connection. https://calendly.com/within-business/within-workshop-unlearn-3-habits-that-prevent-connection?month=2023-10Or connect with them on LinkedIn:Felix: www.linkedin.com/in/relationships-are-the-source-of-results/Phil: https://www.linkedin.com/in/philipburgess/Edited by Steve Woodward at podcastingeditor.com
Thomas Schröder ist global Head of Learning bei Dräxlmaier. In diesem Podcast schildert er, wie er mit dem Learning Team die Unternehmensstrategie unterstützt, z.B. im Bereich Nachhaltigkeit. Auch schauen wir auf die Bedeutung von Werten, die digitale Transformation und Learning Consulting. Wissensmanagement mit SAP Enable Now ist nicht nur im SAP S/4HANA Projekt ein Thema das unser Gast erläutert. Neben konkreten Erfolgsfaktoren und Tipps rund um Strukturierung oder Verantwortungen von Führungskräften machen wir einen Ausflug in die Bedeutung der digital Adoption. Mehr wie immer im EducationNewscast Podcast.
S4E2 Did you know The Lovett School has a team of professionals whose sole mission is to support the teachers of our school? The Lovett Teaching and Learning Team—affectionately known as TLT—is comprised of four professionals: PJ Miller, Director of Teaching and Learning in grades K - 2; Ashley Treiger, Director of Teaching and Learning in grades 3 - 5; Ashley Guianillo, Assistant Head of the Middle School for Teaching and Learning; and Amanda Lucas, Assistant Head of the Upper School for Teaching and Learning. Jessica Sant (host and Lovett's Chief Engagement Officer) speaks with each member of the TLT, and discusses how to identify what Lovett does especially well and where there are opportunities to do things even better. On this episode, you'll learn how TLT is collaborating with teachers to develop engaging lessons and create meaningful experiences for students, cultivating joyful learning, promoting a positive and engaging environment for students and teachers, alike. Find Living Lovett on Apple Podcasts, Spotify, Google Podcasts or your favorite podcast app. Visit The Lovett School website Lovett.org for more information. Lovett is on Facebook, Instagram, and Twitter. Questions? Comments? Episode suggestions? We'd love to hear from you! Email host Jessica Sant.
In this episode of the podcast, we continue our ongoing series on the learning experience at Darden with a conversation with seven students in the Full-Time MBA Class of 2024 who comprised Learning Team 6 – Alyssa Tulabut, Lindsey Moran, Maryeliz Point, Peter Hamilton, Max Redpath, Rauf Aziz and Gerardo Molina Rodriguez. The team discusses how they established their team culture, how they worked together, how their Learning Team shaped their first year experience and more. Did you know? All Darden students are assigned a 5-6 person Learning Team, and this team is an important academic resource, particularly during the core curriculum.
In this episode of the podcast, we continue our ongoing series on the learning experience at Darden with a conversation with six students in the Part-Time MBA Class of 2025 who comprise Learning Team 5 – Zoe Chan, Kory Kiesel, Hieu Le, Falin Patel, Katherine Lee and JP Pitarque. The team discusses how they work together, how the Learning Team has helped them manage their coursework, the surprisingly close bonds they've formed during the first year of the program and more. Did you know? All Darden students are assigned a 5-6 person Learning Team, and this team is an important academic resource, particularly during the core curriculum.
In this episode of the podcast, we talk with Hayden Wilson. Hayden is a first year student in UVA Darden's Executive MBA Class of 2024, and in this wide ranging conversation, Hayden reflects upon his decision to pursue an MBA, adjusting to life as an Executive MBA student, the role his Learning Team has played in his learning experience, his favorite memory from the program so far and more. Hayden is also a member of the Executive MBA Running Club, and, as you will learn from this podcast, a Tom Petty fan.
Most business leaders would agree with former Home Depot and Chrysler CEO Bob Nardelli that "people, unless coached, never reach their maximum potential," yet many teams and organizations lack a strong coaching culture. According to Devon Anthony, Director of Sales Enablement and Learning at Morningstar, Enablement teams can really impact revenue teams' success and create a multiplier effect by building and nurturing a strong coaching culture. Listen in while she shares:The differences between coaching and managingCommon misperceptions that devalue coachingHow Enablement teams can grow the value of coachingCoaching "landmines" to watch forDevon Anthony has a passion for developing sales and coaching others. She's spent her entire career in financial services and has been with Morningstar since 2019. As Director of the Sales Enablement and Learning Team, her primary focus is developing curriculum at scale while prioritizing for impact.Devon volunteers her time as a coach and member of the board of directors for Near West Little League and as a Client Advocate for Administer Justice, a legal aid ministry. Devon enjoys concerts, yoga, and exploring all the cultures of Chicago with her husband Rob and dog Tonka Truck.Please subscibe on Apple, Spotify or Google.
About Episode 132: Guest Joseph Riquelme joins hosts Kelvin and Tom to discuss insights gained from leading a 100% remote online learning team that was “born during the pandemic.” Success strategies for remote work are increasingly important for all of us. Podcast Recording Download Transcript: PDF Episode 132 Show Notes: Episode Synopsis via Twitter View complete list of episode highlights via Twitter Coffee Links “Fellowlope” Single-Origin Ethiopia Koke from Brandywine Coffee Roasters (Wilmington, DE)About Brandywine Coffee Roasters Content Links Joseph Riquelme's Online ProfileOnline Learning at American UniversityFrom TechRadar: “Best Online Collaboration Tools of 2023”In Inside Higher Ed: “A Remote Work Continuum Framework” Extra Special Feature Video Version of this Episode!
Boldly going where no Darden podcast episode has gone before. Our first podcast conversation with a Learning Team! In this episode, we catch up with five (of seven) second year students in the Executive MBA Class of 2023 who are on Learning Team 2 – Johnny Carpenter, John Grant, Catherine Kenney, Kuleen Mehta and Remington Roth. The students talk about how their team formed, set norms, developed their work approach and most importantly supported each other during the program. As is noted during the conversation, learning at Darden is a team sport. Did you know? All Darden students are assigned a 5-6 person Learning Team, and this team is an important academic resource, particularly during the core curriculum.
How Skillful is your Shrink! Now you can find out! The Exciting Recovery Coefficient-- and the FEAR the grips the hearts of the therapists who are afraid to use it! People often wonder how skillful or effective their therapist is, but until now, there was no very valid or precise way to know. But now there is, and it has fantastic implications for psychotherapy. Today, we feature an interview with Kevin Cornelius, a therapist at the Feeling Good Institute in Mountain View, California. Kevin Cornelius is a Licensed Marriage and Family Therapist in private practice at Feeling Good Institute, with in-person counseling for teens .Kevin is a Certified Level 4 Advanced TEAM-CBT Therapist and Trainer. I asked Kevin to write a brief description of his evolution from a career in acting to his career as a shrink. Here's what he wrote: After many years of working as an actor I was ready for a change. After some painful personal events, I saw a therapist who was quite helpful to me. She helped me see that changing to a career as a therapist could be a great thing for me. I went to school and got my Master's in Marriage and Family Therapy. Just before I began applying for internships to complete licensure, I learned that the children's theatre group I had grown up in was looking for a new supervisor to lead the group following the death of its beloved founder and leader. This was a wonderful opportunity for me to use my theatre skills and my desire to help young people in their growth and development. I was very fortunate to be hired and worked as the director of the children's theatre group for 19 years. Towards the end of my years with the children's theatre, I was ready for a change and thought it might be time for me to finish getting my therapy license. It had been 15 years since I had worked with a patient in a therapy session, so I had a lot to learn! I was so lucky to discover David Burns and his amazing TEAM-CBT. The testing element of TEAM enabled me to see right away where I needed to improve so I could focus my efforts on improving specific skills. Being able to study with David in his Tuesday group at Stanford was a golden opportunity. Here was a framework designed to make therapy as effective as possible being taught (for free!) by one of the world's greatest therapists. I'm so happy I followed David's advice to get involved at Feeling Good Institute while I was still pre-licensed. Learning TEAM while I was completing the process to earn my license as a therapist enabled me to start my career in private practice with confidence and a stable foundation. Now, I get to continue learning from mentors at Feeling Good Institute, from the wonderful Feeling Good Podcast, and the valuable lessons I get from my patients. I'll sum up my good fortune with a theatre reference and quote the Gershwins: "Who could ask for anything more?" Kevin recently made the courageous decision to find out exactly how he was doing as a therapist. And the results surprised him tremendously. Background Information for today's podcast Outcome studies with competing schools of psychotherapy in the treatment of depression have been disappointing. They all seem to come out about the same, slightly better than placebos, but not much. For example, in the British CoBalT study of 469 depressed patients treated with antidepressants vs antidepressants plus CBT, only 44% of the patients treated with antidepressants plus CBT experienced a 50% improvement in depression after six months of treatment, and the multi-year follow-up results weren't any better. This was better than the patients treated with antidepressants alone, (only 22% experienced a 50% improvement), but still—to my way of thinking—very poor. We see more improvement than that in just one day in patients using the Feeling Good App. Here are just two of many online references to that landmark study: https://www.thelancet.com/journals/lanpsy/article/PIIS2215-0366(15)00495-2/fulltext https://www.thelancet.com/pdfs/journals/lanpsy/PIIS2215-0366(15)00495-2.pdf Because of the disappointing results of research on the so-called "schools" of psychotherapy, the focus is switching, to some extent, to the effects of individual therapists, since even within a school of therapy, there can be huge differences in therapists' effectiveness. Some therapists seem to have the proverbial “green thumb,” with many patients improving rapidly, while others seem much less effective. Is there a way to measure this? Now there is! And do patients have a right to know how effective their shrinks are? That's what I'm proposing! For at least twenty years or more, I've been trying to sell therapists on my Brief Mood Survey with every patient at every session. That's because you can see exactly and immediately how depressed, anxious, or angry, etc. your patient was at the start and end of today's session. This allows therapists to see, for the first time, exactly how much the patient improved in various dimensions within the session, as well as how much the patient relapsed or continued to improve between sessions. Here's a simple example. To make things really clear, let's imagine that your depression test goes from 0 (not at all depressed) to 100 (the worst depression imaginable, and your patient has an 80 at the start of today's session. That would indicate a horrendously severe depression, similar to patients hospitalized with depression. And yet, your patient might be functioning effectively, and might appear reasonably happy. So, bonus #1, you can see exactly how your patient was feeling at the start of the session. You might think of the BMS as an “emotional X-ray machine.” Now, let's assume you have an excellent session, and feel like you're clicking with the patient, and the patient scores 40 on the end-of-session BMS. That would be a phenomenal 50% improvement. Of course, a score of 40 means that the patient is still moderately depressed, and has a way to go, still the goal is a score of 0 on the depression test and a huge boost in the patient's score on the happiness test on the BMS. Keep in mind that in the dozens of psychotherapy outcome studies that have been published worldwide, the very highest levels of improvement in months and months of therapy are never higher than this. So, I call this the Recovery Coefficient (RC), and it is a very precise measure of any therapist's effectiveness in treating anything you can measure accurately. In an informal study of de-identified data of more than 10,000 therapy sessions at a local treatment center about two years ago. I discovered that the RC the first time therapists met with their patients predicted the improvement over the entire course of therapy. In addition, different therapists had vastly different initial RC scores, which can range from -100% in a single session (meaning a complete elimination of symptoms) to +100% in a single session (meaning severe worsening.) Sadly, because all patient or therapist identifying information was removed to protect identities, I had no way of letting the therapists know their skill levels! But today, we are joined by a therapist who had the guts to calculate his RC in ten patients to see how he was doing. He was initial incredibly demoralize with his percent reductions (RC) of 45% for depression and 47% for anxiety in 50 minute sessions, He reasoned that a 44% in a class would be a failing grade, but I pointed out that this isn't the right comparison. After all, if you had a contract to build the Brooklyn Bridge, and could complete nearly half of it in 50 minutes, you'd be doing something incredibly amazing. Kevin's Depression and Anxiety Recovery Coefficient Calculations Depression Anxiety Empathy 1 Before 6 14 20 After 3 1 % Change -50.00% -92.86% Depression Anxiety Empathy 2 Before 5 6 20 After 1 3 % Change -80.00% -50.00% Depression Anxiety Empathy 3 Before 12 10 20 After 9 9 % Change -25.00% -10.00% Depression Anxiety Empathy 4 Before 10 5 20 After 5 3 % Change -50.00% -40.00% Depression Anxiety Empathy 5 Before 5 9 18 After 3 5 % Change -40.00% -44.44% Depression Anxiety Empathy 6 Before 18 15 20 After 10 9 % Change -44.44% -40.00% Depression Anxiety Empathy 7 Before 14 12 20 After 10 6 % Change -28.57% -50.00% Depression Anxiety Empathy 8 Before 2 9 18 After 4 5 % Change 50.00% -44.44% Depression Anxiety Empathy 9 Before 2 1 20 After 0 1 % Change -100.00% 0.00% Depression Anxiety Empathy 10 Before 6 5 20 After 1 0 % Change -83.33% -100.00% Depression Anxiety Empathy Recovery Coefficient -45.13% -47.17% 19.6 And indeed, Kevin's scores actually showed he was outperforming all the published outcome studies on depression by a factor of several hundred. Which was, I think, a well-deserved pleasant shock to his system! I've always had tremendous admiration and respect for Keven because of his obvious great skill and intelligence combined with world-class compassion and humility. In addition, patients complete the Evaluation of Therapy Session (ETS) immediately after the session, and rate the therapist on Empathy, Helpfulness, and other crucially important dimensions. Kevin's Empathy score was 19.6 (96.5%), indicating near perfect empathy ratings from his patients. This is extremely impressive, since most therapists get failing Empathy scores from nearly all of their patients when they start using the ETS scales. However, what was really cool is that Kevin brought the Daily Mood Log he prepared prior to the podcast. As you can see if you check the link, recording his intense negative feelings and self-critical thoughts when he initially completed his calculations. This helps to explain the fear that so many therapists—nearly all—feel when it comes to being accountable for the first time in the history of psychotherapy. Here's what he was telling himself: I'm not doing well enough. I'm fooling myself. I'm letting my patients down. I'm a fraud. I should be better. I should charge less. I suck! During the podcast, we used some TEAM-CBT to deal with these concerns live, in real time, using Positive Reframing, Identify the Distortions, Examine the Evidence, and Externalization of Voices to smash these thoughts. If you'd like to see the Positive Reframing Table he brought to the session, you can check here. In Kevin's case, the RC calculations, which are simple and only take a minute, gave him a huge gift—the confirmation of his immense technical therapeutic skills as well as his empathy. But what if you're not like Kevin, and you discover that your RCs are not so great, and that your Empathy ratings are in the failing range. Isn't that kind of terrible? Well, it depends on how big your ego is, and how motivated you are to improve. I've gotten plenty of horrible ratings on the ETS, and have had lots of sessions with poor outcomes, including sessions when I wrongly believed I was doing a great job. It DOES hurt. But over the years, my patients have dramatically shaped my therapy approach, and have become my greatest teachers by far. I now enjoy pretty tremendous outcomes with the vast majority of the people I treat, but could never have improved without the constant feedback. Psychotherapy skills are a lot like athletic workouts, and they say, “no pain, no gain.” This is definitely just as true for shrinks. Are you a shrink? Do you have the courage to check out your skills? Here are a couple more random comments. Over the years I've seen the scores of many therapists in training, and many established shrinks in the community. And sometimes I've been surprised that some of the big name, flashy people were actually very unskilled in real therapy situations. And I've also seen that some of the giants of our field, were humble, kindly individuals, like Kevin, who were quietly working miracles, but not even realizing it. And I also had this brainstorm. If you're a patient, and your shrink refuses to use the BMS and ETS, for whatever reason, you could take the test prior to and after each session, and calculate your therapist's Empathy Scores and Recovery Coefficient scores. Mmm. I am thinking there might be a business model in here somewhere! Like a website where you could take the tests and get all the calculations automatically. And maybe that type of information could be published... After all, wouldn't patients LOVE to have this information BEFORE going to a new shrink for treatment. And isn't that EXACTLY where our field should be moving? Accountability and transparency? I hope you enjoyed meeting the incredible Kevin Cornelius today. Thank you for listening and supporting our Feeling Good Podcasts! Warmly, david
By pivoting their approach from a learning orientation to a performance orientation, Fredrik and Teemu have built a reputation for achieving real results. This has led to them being recognised within their organisation, including them being asked to take over the entire Learning & Development function at Telia and Teemu being awarded Telia Reinventor of the Year. As well as this, they were awarded Learning Team of the Year. In this episode, we explore their pivot and the impact this has had. KEY TAKEAWAYS Combining the skills of trainers, coaches and eLearning producers has led to a successful team. If L&D does not have a positive impact on the company´s bottom line, they are not being effective. You need to understand your learner´s workflows. The processes you use need to be agile, so you can create learning tools that adapt as the company does. They have someone anyone can contact when they are trying to work out how to do something or solve a problem. Another member of the team is responsible for pulling together the stats for new projects and those needed to monitor results. Methodologies solve problems, not platforms. Invest in upskilling your team. If you meet resistance to change within the organisation. Say yes to their requests but insist on analysis. They soon understand whether what they are asking for has true value. BEST MOMENTS 'There is no silver bullet in learning and development.' 'We are not generalists who do everything. We are good at what we do separately, and we collaborate. ' 'Stop talking about learning and start talking about performance.' 'I think that the point of no return for our team members came when they got to see the impact that their new initiatives gave had on KPIs that they had set out to improve. ' ABOUT FREDRIK PETERSON HERFINDAL Fredrik is Head of Learning & Performance at Telecoms company Telia. ABOUT TEEMU LILJA Teemu is Learning & Performance Lead for Sales at Telia. GUEST RESOURCES Fredik Peterson Herfindal LinkedIn: https://www.linkedin.com/in/fredrik-peterson-herfindal-825958a4/ Teemu Lilja LinkedIn: https://www.linkedin.com/in/teemu-lilja-79a11bba/ VALUABLE RESOURCES The Learning And Development Podcast - https://podcasts.apple.com/gb/podcast/the-learning-development-podcast/id1466927523 L&D Masterclass Series: https://360learning.com/blog/ ABOUT THE HOST David James David has been a People Development professional for more than 20 years, most notably as Director of Talent, Learning & OD for The Walt Disney Company across Europe, the Middle East & Africa. As well as being the Chief Learning Officer at 360Learning, David is a prominent writer and speaker on topics around modern and digital L&D. CONTACT METHOD Twitter: https://twitter.com/davidinlearning/ LinkedIn: https://www.linkedin.com/in/davidjameslinkedin/ L&D Collective: https://360learning.com/the-l-and-d-collective/ Blog: https://360learning.com/blog/ L&D Masterclass Series: https://360learning.com/blog/ See omnystudio.com/listener for privacy information.
Safety Snapshot for Learning Teams is a quick snapshot of learning to help the community on their Learning Team journey.
Safety Snapshot for Learning Teams is a quick snapshot of learning to help the community on their Learning Team journey.
In this episode of the podcast, we catch up with Billy Petersen (Class of 2023). Billy is as second year student in the Executive MBA Class of 2023, and he is also a pediatric hematologist-oncologist at UVA Health. We talk with Billy about his medical career, his decision to pursue an MBA and how he has fit UVA Darden's Executive MBA program into a very full professional and family life. Billy also discusses the important role his Learning Team played as he navigated his first year as a Darden student.
Safety Snapshot for Learning Teams is a quick snapshot of learning to help the community on their Learning Team journey.
In this episode of the podcast, we catch up with Amy Egeli. Amy is a student in the Executive MBA Class of 2023, and she is also the Executive Student Association's (ESA) Vice President for Careers. We talk with Amy about her career as a Navy aviator, her decision to pursue an MBA, the important role her Learning Team has played as she's navigated the first year of the program and her goals for her term as VP for Careers.
Safety Snapshot for Learning Teams is a quick snapshot of learning to help the community on their Learning Team journey.
Safety Snapshot for Learning Teams is a quick snapshot of learning to help the community on their Learning Team journey.
Safety Snapshot for Learning Teams is a quick snapshot of learning to help the community on their Learning Team journey.
Web and Mobile App Development (Language Agnostic, and Based on Real-life experience!)
What are some of the very basic roles in a Machine Learning team? #projectmanagement Manage your projects on https://snowpal.com. Keep it simple.
With the drastic increase in remote work these days, the profession of the digital nomad has become much more common. Unfortunately, many digital nomads seem to run into a common problem: self-doubt.Welcome back to The Frame of Mind Coaching™ Podcast! Lindsay Gafford, Operations Manager for the Forum and Learning Team at YPO, is with me and I couldn't be more excited!Lindsay has been thriving as a digital nomad who travels all over the world, but she's also struggling with self-doubt. She has built herself up in so many jobs that she no longer knows if those experiences actually match what she wants for her future.She needs to journal about what her past experiences have in common, what her legacy has been, how it'll affect her work in the future, and how she can make everything work towards her goals.Join the conversation!https://www.frameofmindcoaching.com/the-frame-of-mind-coaching-podcastRead the episode's transcript here:https://www.buzzsprout.com/1252997/episodes/10141729Have you experienced that sense of self-doubt too? Do you have a challenge you'd like to discuss? Reach out! If there's any issue you want to talk about here on the podcast or privately, please send me an email:kim@frameofmindcoaching.comAnd here are some of our previous episodes on this topic!How To Let Go Of Old Behaviors: With Tanner Stewarthttps://www.frameofmindcoaching.com/episodes/how-to-let-go-of-old-behaviors-with-tanner-stewartHow To Manage Your Self-Doubt: With Joe Luhttps://www.frameofmindcoaching.com/episodes/how-to-manage-your-self-doubt-with-joe-lu
Safety Snapshot for Learning Teams is a quick snapshot of learning to help the community on their Learning Team journey.
Safety Snapshot for Learning Teams is a quick snapshot of learning to help the community on their Learning Team journey.
Safety Snapshot for Learning Teams is a quick snapshot of learning to help the community on their Learning Team journey.
Safety Snapshot for Learning Teams is a quick snapshot of learning to help the community on their Learning Team journey.
Hello everyone! Welcome back to the DREAM! B.I.G Podcast! We are excited to announce our Storytime Series where members of the L2C Virtual Learning Team will read children's books to help increase reading literacy! Reading and sharing stories can: Help your children get to know sounds, words and language, and develop early literacy skills. Learn to value books and stories. Spark a child's imagination and stimulate curiosity. Help develop children's brain, ability to focus, concentration, social skills and communication skills You will hear many stories focused on a variety of topics such as self-acceptance, the importance of creativity and so much more! The storytime episodes will be uploaded every Sunday wherever you hear our podcasts. Our first reading is by Ibiso Wokoma, a 12th grader at Chesapeake Math & IT Academy in Prince Georges County. The book she is reading is titled If you Give a Mouse a Cookie by Laura Numeroff and illusrated by Felicia Bond. Gather around your children for Sunday Storytime! Stay tuned for our reading release next Sunday!
Safety Snapshot for Learning Teams is a quick snapshot of learning to help the community on their Learning Team journey.
In this episode of the podcast, we catch up with Shuai Yao (Class of 2023). Shuai reflects upon her personal story, including relocating from China to the Washington and launching her own global social media talk show on which she interviewed passengers she picked up while driving for Lyft. Shuai also shares insights from her first couple quarters at Darden, including how her Learning Team has become another family for her and her fellow teammates.
Safety Snapshot for Learning Teams is a quick snapshot of learning to help the community on their Learning Team journey.
Safety Snapshot for Learning Teams is a quick snapshot of learning to help the community on their Learning Team journey.
Safety Snapshot for Learning Teams is a quick snapshot of learning to help the community on their Learning Team journey.
Safety Snapshot for Learning Teams is a quick snapshot of learning to help the community on their Learning Team journey.
Safety Snapshot for Learning Teams is a quick snapshot of learning to help the community on their Learning Team journey.
Safety Snapshot for Learning Teams is a quick snapshot of learning to help the community on their Learning Team journey.
Results May Vary Podcast Podcast: Design Thinking for Living
Gabrielle recently joined the Learning Team at Airbnb to create and deliver innovative learning experiences that help foster connection, unlock creativity and inspire action. Katia and Chris talk with Gabrielle about the fundamentals of life design, the potential for prototyping and practical steps everyone can take to unlock their full potential.
Safety Snapshot for Learning Teams is a quick snapshot of learning to help the community on their Learning Team journey.
Welcome to the 53rd episode of the podcast series. In today's show, Brent Sutton, Glynis McCarthy and Brent Robinson discuss Psychological Safety within the context of a Learning Team. .
Safety Snapshot for Learning Teams is a quick snapshot of learning to help the community on their Learning Team journey.
Safety Snapshot for Learning Teams is a quick snapshot of learning to help the community on their Learning Team journey.
Safety Snapshot for Learning Teams is a quick snapshot of learning to help the community on their Learning Team journey.
Safety Snapshot for Learning Teams is a quick snapshot of learning to help the community on their Learning Team journey.
Safety Snapshot for Learning Teams is a quick snapshot of learning to help the community on their Learning Team journey.
Safety Snapshot for Learning Teams is a quick snapshot of learning to help the community on their Learning Team journey.
Safety Snapshot for Learning Teams is a quick snapshot of learning to help the community on their Learning Team journey.
Safety Snapshot for Learning Teams is a quick snapshot of learning to help the community on their Learning Team journey.
Safety Snapshot for Learning Teams is a quick snapshot of learning to help the community on their Learning Team journey.
Safety Snapshot for Learning Teams is a quick snapshot of learning to help the community on their Learning Team journey.
Safety Snapshot for Learning Teams is a quick snapshot of learning to help the community on their Learning Team journey.
Have you ever wanted to meet the team behind Madly Learning? You get to in this episode! I have some of my amazing team members joining me to talk about all things teamwork and teaching. You will get to hear things like what their roles are on the team, what they've learned during the pandemic, and some of their favorite things about teaching. Madison is part of the content team, and she helps us get everything done. She has taught in a bunch of different grades since the beginning of her teaching career. Margaret helps us with all things tech. If you've ever sent us an email or noticed a broken link on our website, Margaret was probably working her magic behind the scenes. She keeps us organized. Lisa is on our content team, and she writes some of our lesson plans. You might have seen some of her work! She taught for 30 years, mostly in junior grades, and she has done it all. Katrina helps us out with our social media. You might have seen some of her posts in the Madly Learning Facebook group. Tune in to this episode for a super fun chat and some laughs as you get to know my team. I would love to connect on Facebook or Instagram! Show notes available at www.madlylearning.com/188
Safety Snapshot for Learning Teams is a quick snapshot of learning to help the community on their Learning Team journey.
Safety Snapshot for Learning Teams is a quick snapshot of learning to help the community on their Learning Team journey.
Safety Snapshot for Learning Teams is a quick snapshot of learning to help the community on their Learning Team journey.
Safety Snapshot for Learning Teams is a quick snapshot of learning to help the community on their Learning Team journey.
Safety Snapshot for Learning Teams is a quick snapshot of learning to help the community on their Learning Team journey.
Safety Snapshot for Learning Teams is a quick snapshot of learning to help the community on their Learning Team journey.
Safety Snapshot for Learning Teams is a quick snapshot of learning to help the community on their Learning Team journey.
Safety Snapshot for Learning Teams is a quick snapshot of learning to help the community on their Learning Team journey.
Safety Snapshot for Learning Teams is a quick snapshot of learning to help the community on their Learning Team journey.
Safety Snapshot for Learning Teams is a quick snapshot of learning to help the community on their Learning Team journey.
Read the full Show Notes and search through the world’s largest audio library on Scrum directly on the Scrum Master Toolbox Podcast website: http://bit.ly/SMTP_ShowNotes. Scrum Masters are there to help the team learn. Therefore, when we think about success for Scrum Masters, we need to look at what we have helped the team learn with our presence. But this brings a challenge, as Scrum Masters, we must help the team make time for learning. The team’s goal is not only to “code”, it’s to learn and improve over time, both on the “coding” but also other aspects (like being more customer-centric). Featured Retrospective Format for the Week: The 4 L’s, I Long for, I Learned, I Liked, I Lacked The 4 L’s format, which was mentioned in a previous episode, is all about learning. With the “Like” question, we help create empathy, with “lacked/longed for” we explore what the team was missing, and with the “learned” question we help transform mistakes into hopeful lessons for the team. Do you wish you had decades of experience? Learn from the Best Scrum Masters In The World, Today! The Tips from the Trenches - Scrum Master edition audiobook includes hours of audio interviews with SM’s that have decades of experience: from Mike Cohn to Linda Rising, Christopher Avery, and many more. Super-experienced Scrum Masters share their hard-earned lessons with you. Learn those today, make your teams awesome! About Kamal Hans Kamal Hans believes people are capable of incredible things if they have the support they need. He is at his best when he gets to connect people with each other and their vision, create a structure of support, build a system to achieve their goals to accomplish bigger things than themselves. As an Agile Coach and disciplined facilitator, he has worked with global organizations like Ericsson, and Bose to name a few. You can link with Kamal Hans on LinkedIn and connect with Kamal Hans on Twitter
Safety Snapshot for Learning Teams is a quick snapshot of learning to help the community on their Learning Team journey.
Join us for a collaborative discussion on the next episode of Meet the Author with https://www.linkedin.com/in/brentsuttonnz/ (Brent Sutton), https://www.linkedin.com/in/glynis-mccarthy-6539a0102/ (Glynis McCarthy), and https://www.linkedin.com/in/brent-robinson-36abab14/ (Brent Robinson) discussing “The Practice of Learning Teams: Learning and improving safety, quality and operational excellence.” with Gary Wong and Tamara Parris. A Learning Team encourages organizations to obtain and consider different perspectives and angles of functional diversity to define a problem in a group context. The different perspectives that emerge from a Learning Team group demonstrate that no one person holds all the knowledge needed to solve complex problems. Learning Teams support both worker learning and organizational learning by allowing the different stakeholders groups to understand better what, when, how, and why, people do things differently rather than following formal, written procedures or systems. Book purchase: https://amzn.to/3qb1mbW
First year Executive MBA student Jemuir Rivers (Class of 2022) is a U.S. Naval Academy graduate and a test pilot in the United States Navy. In this podcast, we talk with Rivers about his decision to pursue an MBA, how classes are going so far, the important role his Learning Team has played in these first few quarters and what he believes really matters in an MBA program. Spoiler alert: It's about more than just numbers.
Welcome to the 23rd episode of the podcast series. Today's podcast is the final in the series of our episodes on our virtual tour of Australia and looking at how the Australians are applying Learning Teams to improve organisational learning.
Welcome to the 18th Episode of the podcast series. In this episode, The Practice of Learning Teams, book authors Brent Sutton, Glynis McCarthy and Brent Robinson will conduct a mini-learning team based on your submissions in the learning journal. We will discuss and reflect on some of the community challenges to embed learning teams and explore The What?, The How? and The Why?
Welcome to the 16th Episode of the podcast series. In this episode, The Practice of Learning Teams, book authors Brent Sutton, Glynis McCarthy and Brent Robinson will conduct a mini-learning team based on your submissions in the learning journal. We will discuss and reflect on some of the community challenges to embed learning teams and explore The What?, The How? and The Why?
Welcome to the 12th Episode of the podcast series. In this episode, The Practice of Learning Teams, book authors Brent Sutton, Glynis McCarthy and Brent Robinson will conduct a mini-learning team based on your submissions in the learning journal. We will discuss and reflect on some of the community challenges to embed learning teams and explore The What?, The How? and The Why?
Welcome to the 10th Episode of the podcast series. In this episode, The Practice of Learning Teams, book authors Brent Sutton, Glynis McCarthy and Brent Robinson will conduct a mini-learning team based on your submissions in the learning journal. We will discuss and reflect on some of the community challenges to embed learning teams and explore The What?, The How? and The Why?
Welcome to the 8th Episode of the podcast series. In this episode, The Practice of Learning Teams, book authors Brent Sutton, Glynis McCarthy and Brent Robinson will conduct a mini-learning team based on your submissions in the learning journal. We will discuss and reflect on some of the community challenges to embed learning teams and explore The What?, The How? and The Why?
Welcome to the 6th Episode of the podcast series. In this episode, The Practice of Learning Teams, book authors Brent Sutton, Glynis McCarthy and Brent Robinson will conduct a mini-learning team based on your submissions in the learning journal. We will discuss and reflect on some of the community challenges to embed learning teams and explore The What?, The How? and The Why?
Welcome to the 5th Episode of the podcast series. Our guest today is Kevin Furniss, who is one of the unsung heroes of doing Safety Differently. Join Kevin and I today as we chat about his Learning Team journey, living in sunny Barcelona and sharing cups of teas as commonwealth brothers in this extended episode of the show.
Welcome to the 4th Episode of the podcast series. In this episode, The Practice of Learning Teams, book authors Brent Sutton, Glynis McCarthy and Brent Robinson will conduct a mini-learning team based on your submissions in the learning journal. We will discuss and reflect on some of the community challenges to embed learning teams and explore The What?, The How? and The Why?
In this week, Sheldon continues the talks with authors of the new book "The Practice of Learning Teams: Learning and improving safety, quality and operational excellence.", with foreword by Dr Todd Conklin released August 2020 (ISBN: 9798665374321, Sutton, McCarthy and Robinson: Pre-Accident Investigation Media). https://swiy.io/POLT In the book Dr Todd Conklin states: "The Practice of Learning Teams will become a powerful resource in changing the way organizations learn and improve their operations. This book is easy to read and full of great concepts that can be used as soon as you read them. I love a book where you read an idea in the morning and try the same idea that very afternoon." From the Author Brent Sutton A Learning Team is notable because it encourages organizations to obtain and consider different perspectives and angles of functional diversity to define a problem in a group context. The different perspectives that emerge from a Learning Team group demonstrate that no one person holds all the knowledge needed to solve complex problems. Glynis McCarthy The purpose and principles of Learning Teams resonate with my Adult Learning beliefs. In Learning Teams, I see an inherent opportunity for enhanced worker learning. I also see the opportunity to support a positive learning culture. Learning Teams provide a dual opportunity for both workers and the organization to learn from everyday work. Brent Robinson Learning Teams as a way to facilitate and capture knowledge from the people doing the work are a perfect match for Lean. Lean can provide tools to capture and disseminate knowledge across the organization and by applying the PDCA cycle the learning culture will become embedded across the organization.
Welcome to the 2nd Episode of the podcast series. In this episode, The Practice of Learning Teams, book authors Brent Sutton, Glynis McCarthy and Brent Robinson will conduct a mini-learning team based on your submissions in the learning journal. We will discuss and reflect on some of the community challenges to embed learning teams and explore The What?, The How? and The Why?
In this week, Sheldon talks with authors of the new book "The Practice of Learning Teams: Learning and improving safety, quality and operational excellence.", with foreword by Dr Todd Conklin released August 2020 (ISBN: 9798665374321, Sutton, McCarthy and Robinson: Pre-Accident Investigation Media). https://swiy.io/POLT In the book Dr Todd Conklin states: "The Practice of Learning Teams will become a powerful resource in changing the way organizations learn and improve their operations. This book is easy to read and full of great concepts that can be used as soon as you read them. I love a book where you read an idea in the morning and try the same idea that very afternoon." From the Author Brent Sutton A Learning Team is notable because it encourages organizations to obtain and consider different perspectives and angles of functional diversity to define a problem in a group context. The different perspectives that emerge from a Learning Team group demonstrate that no one person holds all the knowledge needed to solve complex problems. Glynis McCarthy The purpose and principles of Learning Teams resonate with my Adult Learning beliefs. In Learning Teams, I see an inherent opportunity for enhanced worker learning. I also see the opportunity to support a positive learning culture. Learning Teams provide a dual opportunity for both workers and the organization to learn from everyday work. Brent Robinson Learning Teams as a way to facilitate and capture knowledge from the people doing the work are a perfect match for Lean. Lean can provide tools to capture and disseminate knowledge across the organization and by applying the PDCA cycle the learning culture will become embedded across the organization.
In this episode of the podcast, we feature interviews with two members of the same Learning Team – Rizki Ridwan and Stephanie Dhue. Rizki and Stephanie are both GEMBA format students in our Class of 2021, and we caught up with them to talk about their decision to pursue an MBA, what led them to Darden and how their Learning Team helps them manage their coursework. We recorded this episode a few months ago when Rizki and Stephanie were in their first quarter of the program. Over the next couple weeks, we'll be clearing out our interview vault, but stay tuned for new episodes as well. We're excited to announce that we've identified a remote solution that will allow us to keep the podcast going during this time of social distancing.
Teams create impact. Learning teams create lasting change and transform practice. So how can a group of educators move from simple collaboration to dynamic transformation? As part of an 8-part "Thought Leader" podcast series, join our conversation with Tracy Crow (Chief Strategy Officer, Learning Forward), Fred Brown (Deputy Executive Director, Learning Forward), Kellie Randall (Coordinator of Professional Learning, Cherry Creek Schools), and John Eyolfson (Assistant to Principal, Eaglecrest High School), as we explore how cycles of team learning can fuel collective efficacy. For those who may want to extend the learning evoked by the podcast, the following facilitation guide (https://bit.ly/2Voa1ve) has been developed to help with next steps in deepening the shared learning. This series is brought to you in collaboration with Learning Forward, the only professional association devoted exclusively to establishing and sustaining highly effective professional development for educators. To learn more about Learning Forward, visit www.learningforward.org. myPD Unplugged is a production of the Office of Curriculum, Instruction, and Professional Development in Long Beach Unified School District.
In her role at GE Digital, Megan leads an integrated approach to building GE Digital’s organizational and talent capabilities leveraging people analytics. She’s the connection between Talent Acquisition, GE Digital’s Learning Team, and Human Resources in driving employee and people leader engagement for strategic business outcomes. Megan is passionate about the future of HR and shaping an organization’s culture through talent and organizational development initiatives. Megan has a Master’s in Organizational Development from the University of San Francisco.
Tracy Lee: @ladyleet | ladyleet.com Ben Lesh: @benlesh | medium.com/@benlesh Show Notes: 00:50 - What is This Dot? 03:26 - The RxJS 5.5.4 Release and Characterizing RxJS 05:14 - Observable 07:06 - Operators 09:52 - Learning RxJS 11:10 - Making RxJS Functional Programming Friendly 12:52 - Lettable Operators 15:14 - Pipeline Operators 21:33 - The Concept of Mappable 23:58 - Struggles While Learning RxJS 33:09 - Documentation 36:52 - Surprising Uses of Observables 40:27 - Weird Uses of RxJS 45:25 - Announcements: WHATWG to Include Observables and RxJS 6 Resources: this.media RxJS RX Workshop Ben Lesh: Hot vs Cold Observables learnrxjs.io RxMarbles Jewelbots Transcript: CHARLES: Hello everybody and welcome to The Frontside Podcast, Episode 91. My name is Charles Lowell, a developer here at The Frontside and your podcast host-in-training. Joining me today on the podcast is Elrick Ryan. Hello, Elrick. ELRICK: Hey, what's up? CHARLES: Not much. How are you doing? ELRICK: I'm great. Very excited to have these two folks on the podcast today. I feel like I know them… CHARLES: [Laughs] ELRICK: Very well, from Twitter. CHARLES: I feel like I know them well from Twitter, too. ELRICK: [Laughs] CHARLES: But I also feel like this is a fantastic company that is doing a lot of great stuff. ELRICK: Yup. CHARLES: Also not in Twitter. It should be pointed out. We have with us Tracy Lee and Ben Lesh from This Dot company. TRACY: Hey. CHARLES: So first of all, why don't we start, for those who don't know, what exactly is This Dot? What is it that you all do and what are you hoping to accomplish? TRACY: This Dot was created about a year ago. And it was founded by myself and Taras who work on it full-time. And we have amazing people like Ben, who's also one of our co-founders, and really amazing mentors. A lot of our friends, when they refer to what we actually do, they like to call it celebrity consulting. [Laughter] TRACY: Which I think is hilarious. But it's basically core contributors of different frameworks and libraries who work with us and lend their time to mentor and consult with different companies. So, I think the beautiful part about what we're trying to do is bring together the web. And we sort of do that as well not only through consulting and trying to help people succeed, but also through This Dot Media where it's basically a big playground of JavaScripting all the things. Ben and I do Modern Web podcast together. We do RX Workshop which is RxJS training together. And Ben also has a full-time job at Google. CHARLES: What do they got you doing over there at Google? BEN: Well, I work on a project called Alkali which is an internal platform as a service built on top of Angular. That's my day job. CHARLES: So, you've been actually involved in all the major front-end frameworks, right, at some point? BEN: Yeah, yes. I got my start with Angular 1 or AngularJS now, when I was working as a web developer in Pittsburgh, Pennsylvania at a company called Aesynt which was formerly McKesson Automation. And then I was noticed by Netflix who was starting to do some Angular 1 work and they hired me to come help them. And then they decided to do Ember which is fine. And I worked on a large Ember app there. Then I worked on a couple of large React apps at Netflix. And now I'm at Google building Angular apps. CHARLES: Alright. BEN: Which is Angular 5 now, I believe. CHARLES: So, you've come the full circle. BEN: Yeah. Yeah, definitely. CHARLES: [Chuckles] I have to imagine Angular's changed a lot since you were working on it the first time. BEN: Yeah. It was completely rewritten. TRACY: I feel like Angular's the new Ember. CHARLES: Angular is the new Ember? TRACY: [Laughs] BEN: You think? TRACY: Angular is the new Ember and Vue is the new AngularJS, is basically. [Laughs] CHARLES: Okay. [Laughter] CHARLES: What's the new React then? BEN: Preact would be the React. CHARLES: Preact? Okay, or is Glimmer… BEN: [Laughs] I'm just… CHARLES: Is Glimmer the new React? BEN: Oh, sure. [Laughs] CHARLES: It's important to keep these things straight in your head. BEN: Yeah, yeah. CHARLES: Saves on confusion. TRACY: Which came first? [Chuckles] BEN: Too late. I'm already confused. CHARLES: So now, before the show you were saying that you had just, literally just released RxJS, was it 5.5.4? BEN: That's right. That's right. The patch release, yeah. CHARLES: Okay. Am I also correct in understanding that RxJS has kind of come to very front and center position in Angular? Like they've built large portions of framework around it? BEN: Yeah, it's the only dependency for Angular. It is being used in a lot of official space for Angular. For example, Angular Material's Data Table uses observables which are coming from RxJS. They've got reactive forms. The router makes use of Observable. So, the integration started kind of small which HTTPClient being written around Observable. And it's grown from there as people seem to be grabbing on and enjoying more the React programming side of things. So, it's definitely the one framework that's really embraced reactive programming outside of say, Cycle.js or something like that. CHARLES: Mmhmm. So, just to give a general background, how would you characterize RxJS? BEN: It's a library built around Observable. And Observable is a push-based primitive that gives you sets of events, really. CHARLES: Mmhmm. BEN: So, that's like Lodash for events would be a good way to put it. You can take anything that you can get pushed at you, which is pretty much value type you can imagine, and wrap it in an observable and have it pushed out of the observable. And from there, you have a set of things that you can combine. And you can concatenate them, you can filter them, you can transform them, you can combine them with other sets, and so on. So, you've got this ability to query and manipulate in a declarative way, events. CHARLES: Now, Observable is also… So, when Jay was on the podcast we were talking about Redux observable. But there was outside of the context of RxJS, it was just observables were this standalone entity. But I understand that they actually came from the RxJS project. That was the progenitor of observables even though there's talk of maybe making them part of the JavaScript spec. BEN: Yeah, that's right. That's right. So, RxJS as it stands is a reference implementation for what could land in JavaScript or what could even land in the DOM as far as an observable type. Observable itself is very primitive but RxJS has a lot of operators and optimizations and things written around Observable. That's the entire purpose of the library. CHARLES: Mmhmm. So, what kind of value-adds does it provide on top of Observable? If Observable was the primitive, what are the combinators, so to speak? BEN: Oh, right. So, similar to what Lodash would add on top of say, an iterable or arrays, you would have the same sorts of things and more inside of RxJS. So, you've got zip which you would maybe have seen in Lodash or different means of combines. Of course, map and ‘merge map' which is like a flattening sort of operation. You can concatenate them together. But you also have these time-based things. You can do debouncing or throttling of events as they're coming over in observable and you create a new observable of that. So, the value-add is the ability to compose these primitive actions. You can take on an observable and make a new observable. We call it operators. And you can use those operators to build pretty much anything you can imagine as far as an app would go. CHARLES: So, do you find that most of the time all of the operators are contained right there inside RxJS? Or if you're going to be doing reactive programming, one of your tasks is going to be defining your own operators? BEN: No, pretty much everything you'd need will be defined within RxJS. There's 60 operators or so. CHARLES: Whoa, that's a lot. BEN: It's unlikely that someone's going to come up with one. And in fact, I would say the majority of those, probably 75% of those, you can create from the other 25%. So, some of the much more primitive operators could be used… TRACY: Which is sort of what Ben did in this last release, RxJS 5…. I don't know remember when you introduced the lettable operators but you… BEN: Yeah, 5.5. TRACY: Implemented [inaudible] operators. BEN: Yeah, so a good portion of them I started implementing in terms of other operators. CHARLES: Right. So, what was that? I didn't quite catch that, Tracy. You said that, what was the operator that was introduced? TRACY: So, in one of the latest releases of RxJS, one of the more significant releases where pipeable operators were introduced, what Ben did was he went ahead and implemented a lot of operators that were currently in the library in terms of other operators, which was able to give way to reduce the size of the library from, I think it was what, 30KB bundled, gzipped, and minified, to about 30KB, which was about 60 to 70% of the operators. Right, Ben? BEN: Yeah. So, the size reduction was in part that there's a lot of factors that went into the size reduction. It would be kind of hard to pin it down to a specific operator. But I know that some of the operators like the individual operators themselves, by reimplementing reduce which is the same as doing as scan and then take last, implementing it in terms of that is going to reduce the size of it probably 90% of that one particular file. So, there's a variety of things like that that have already started and that we're going to continue to do. We didn't do it with every operator that we could have. Some operators are very, very common and consequently we want them to be as optimized as possible. For example, map. You can implement map in terms of ‘merge map' but it would be very slow to do so. It might be smaller but it would be slower. We don't want that. So, there are certain areas we're always going to try to keep fairly a hot path to optimize them as much as possible. But in other spots like reduce which is less common and isn't usually considered to be a performance bottleneck, we can cut some corners. Or ‘to array' or other things like that. CHARLES: Mmhmm. TRACY: And I think another really interesting thing is a lot of people when learning RxJS, they… it's funny because we just gave an RX Workshop course this past weekend and the people that were there just were like, “Oh, we've heard of RxJS. We think it's a cool new thing. We have no plans to implement it in real life but let's just play around with it and let me learn it.” I think as people are starting to learn RxJS, one of the things that gets them really overwhelmed is this whole idea that they're having to learn a completely new language on top of JavaScript or what operators to use. And one of our friends, Brian Troncone who is on the Learning Team, the RxJS Learning Team, he pulled up the top 15 operators that were most commonly searched on his site. And some of them were ‘switch map', ‘merge map', ‘fork join', merge, et cetera. So, you can sort of tell that even though the library has quite a few… it's funny because Ben, I think the last RX Workshop you were using pairs and you had never used it before. BEN: Yeah. TRACY: So, it's always amusing for me how many people can be on the core team but have never implemented RxJS… CHARLES: [Laughs] TRACY: A certain way. BEN: Right. Right, right, right. CHARLES: You had said one of the recent releases was about making it more friendly for functional programming. Is that a subject that we can explore? Because using observables is already pretty FP-like. BEN: What it was before is we had dot chaining. So, you would do ‘dot map' and then call a method and then you get an observable back. And then you'd say ‘dot merge' and then you'd call a method on that, and so on and so forth. Now what you have is kind of a Ramda JS style pipe function that just takes a comma-separated list of other functions that are going to act upon the observable. So, it reads pretty much the same with a little more ceremony around it I guess. But the upside is that you can develop your operators as just higher-order functions. CHARLES: Right. And you don't have to do any monkey-patching of prototypes. BEN: Exactly, exactly. CHARLES: Because actually, okay, I see. This is actually pretty exciting, I think. Because we actually ran into this problem when we were using Redux Observable where we wanted to use some operators that were used by some library but we had to basically make a pull request upstream, or fork the upstream library to include the operators so that we could use them in our application. It was really weird. BEN: Yeah. CHARLES: The reason was because it was extending the observable prototype. BEN: Yeah. And there's so many… and that's one way to add that, is you extend the observable prototype and then you override lift so you return the same type of observable everywhere. And there are so many things that lettable operators solved for us. For example… CHARLES: So, lettable operators. So, that's the word that Tracy used and you just used it. What are lettable operators? BEN: Well, I've been trying to say pipeable and get that going instead of lettable. But basically there's an operator on RxJS that's been there forever called let. And let is an operator and what you do is you give it a function. And the function gives you the source observable and you're expected to return a new observable. And the idea is that you can then write a function elsewhere that you can then compose in as though it were an operator, anywhere you want, along with your other dot-chained operators. And the realization I had a few months ago was, “Well, why don't we just make all operators like this?” And then we can use functional programming to compose them with like a reduce or whatever. And that's exactly what the lettable operators are. And that's why I started calling them lettable operators. And I kind of regret it now, because so many people are saying it and it confuses new people. Because what in the world does lettable even mean? CHARLES: Right. [Laughs] BEN: So, they are pipeable operators or functional operators. But the point is that you have a higher-order function that returns a function of a specific shape. And that function shape is, it's a function that receives an observable and returns an observable, and that's it. So, basically it's a function that transforms an observable into a new observable. That's all an operator. That's all an operator's ever been. It's just this is in a different flavor. CHARLES: Now, I'm curious. Why does it do an observable into an observable and not a stream item into an observable? Because when you're actually chaining these things together, like with a map or with a ‘flat map' or all these things, you're actually getting an individual item and then returning an observable. Well, I guess in this case of a map you're getting an item and returning an item. But like… BEN: Right, but that's not what the entire operation is. So, you've got an operation you're performing whenever you say, if you're to just even dot-chain it, you'd say ‘observable dot map'. And when you say ‘dot map', it returns a new observable. And then you say ‘dot filter' and it returns another new observable. CHARLES: Oh, gotcha, gotcha, gotcha. Okay, yeah, yeah, yeah. Yeah, yeah. BEN: So, this function just embodies that step. CHARLES: I see, I see. And isn't there some special… I feel like there's some proposal for some special JavaScript syntax to make this type of chaining? BEN: Yeah, yeah, the pipeline operator. CHARLES: Okay. BEN: I don't know. I think that's still at stage one. I don't know that it's got a lot of headway. My sources and friends that are in the TC39 seem to think that it doesn't have a lot of headway. But I really think it's important. Because if you look at… the problem is we're using a language where the most common use case is you have to build it, get the size as small as possible because you need to send it over the wire to the browser. And understandably, browsers don't want to implement every possible method they could on say, Array, right? CHARLES: Mmhmm, right. BEN: There's a proposal in for ‘flat map'. They could add zip to Array. They could add all sorts of interesting things to Array just by itself. And that's why Lodash exists, right? CHARLES: Right. BEN: Is because not everything is on Array. And then so, the onus is then put on the community to come up with these solutions and the community has to build libraries that have these constraints in size. And what stinks about that is then you have say, an older version of Lodash where you'd be like, “Okay, well it has 36 different functions in it and I'm only using 3 of them. And I have to ship them all to the browser.” CHARLES: Mmhmm. BEN: And that's not what you want. So, then we have these other solutions around tree-shaking and this and that. And the real thing is what you want is you want to be able to compose things left to right and you want to be able to have these functions that you can use on a particular type in an ad hoc way. And there's been two proposals to try to address this. One was the ‘function bind' operator, CHARLES: Mmhmm. BEN: Which is colon colon. And what that did is it said, “You can use this function as a method, as though it were a method on an object. And we'll make sure that the ‘this' inside that function comes from the instance that's on the left-hand side of colon colon.” CHARLES: Right. BEN: That had a bunch of other problems. Like there's some real debate I guess on how they would tie that down to a specific type. So, that kind of fell dead in the water even though it had made some traction. And then the pipeline operator is different. And then what it says is, “Okay, whatever is on the…” And what it looks like is a pipe and a greater than right next to each other. And whatever's on the left-hand side of that operand gets passed as the first argument to the function on the right-hand side of that operand. CHARLES: Mmhmm. BEN: And so, what that means is for the pipeable operators, instead of having to use a pipe method on observable, you can just say, “instance of observable, pipeline operator and an operator, and then pipeline operator, and then the Rx operator, and then pipeline operator and the Rx operator, and so on.” And it would just be built-in. And the reason I think that JavaScript really needs it is that means that libraries like Lodash can be written in terms of simple functions and shipped piece-meal to the browser exactly as you need them. And people would just use the pipeline operator to use them, instead of having to wrap something in a big object so you can dot-chain things together or come up with your own functional pipe thing like RxJS had to. CHARLES: Right. Because it seems it happens again and again, right? Lodash, RxJS, jQuery. You just see this pattern of chaining, which is, you know… BEN: Yeah, yeah. People want chaining. People want left to right composition. CHARLES: Mmhmm. BEN: And it's problematic in a world where you want to shake off as much unused garbage as possible. And the only way to get dot chaining is by augmenting a prototype. There's all sorts of weird problems that can come with that. And so, the functional programming approach is one method. But then people look at it and they say, “Ooh, yuck. I've got to wrap things in a function named pipe. Wouldn't it be nicer if there was just some syntax to do this?” And yeah, it would be nicer. But I have less control over that. CHARLES: Right. But the other alternative is to have right to left function composition. BEN: Right, yeah. CHARLES: But there's not any special syntax for that, either. BEN: Not very readable. CHARLES: Yeah. BEN: So, you just wrap everything. And the innermost call is the first one and then you wrap it in another function and you wrap that in another function, and so on. Yeah, that's not [inaudible]. But I will say that the pipe function itself is pretty simple. It's basically a function that takes a rest of arguments that are all functions. CHARLES: Mmhmm. BEN: And so, you have this array of functions and you just reduce over it and call them. Well, you return a function. So, it's a higher function. You return a function that takes an argument then you reduce over the functions that came in as arguments and you call each one of them with whatever result was from the previous. CHARLES: Right. Like Tracy mentioned in the pre-show, I'm an aspiring student of functional programming. So, would this be kind of like a monoid here where you're mashing all these functions together? Is your empty value? I'm just going to throw it out there. I don't know if it's true or not, but that's my conjecture. BEN: Yes. Technically, it's a monoid because it wouldn't work unless it was a monoid. Because monoids, I believe the category theory I think for monoid is that monoids can be concatenated because they definitely have an end. CHARLES: Right. BEN: So, you would not be able to reduce over all those functions and build something with that, like that, unless it was a monoid. So yeah, the fact that there's reduction involved is a cue that it's a monoid. CHARLES: Woohoo! Alright. [Laughter] CHARLES: Have you found yourself wanting to apply some of these more “rigorous” formalisms that you find out there in the development of RxJS or is that just really a secondary concern? BEN: It's a secondary concern. It's not something that I like. It's something I think about from time to time, when really, debating any kind of heavy issue, sometimes it's helpful. But when it comes to teaching anybody anything, honestly the Haskell-isms and category theory names, all they do is just confuse people. And if you tell somebody something is a functor, they're like, “What?” And if you just say it's mappable, they're like, “Oh, okay. I can map that.” CHARLES: [Laughs] Right, right. BEN: And then the purists would be like, “But they're not the same thing.” And I would be like, “But the world doesn't care. I'm sorry.” CHARLES: Yeah, yeah. I'm kind of experiencing this debate myself. I'm not quite sure which side I fall on, because on the one hand it is arbitrary. Functor is a weird name. But I wish the concept of mappable existed. It does, but I feel like it would be handy if people… because there's literally five things that are super handy, right? Like mappable, if we could have a name for monoid. But it's like, really, you just need to think in terms of these five constructs for 99% of the stuff that you do. And so, I always wonder, where does that line lie? And how… mappable, is that really more accessible than functor? Or is that only because I was exposed to the concept of mapping for 10 years before I ever heard the F word. BEN: Yes, and yes. I mean, that's… CHARLES: [Laughs] BEN: Things that are more accessible are usually more accessible because of some pre-given knowledge, right? What works in JavaScript probably isn't going to work in Haskell or Scala or something, right? CHARLES: Mmhmm. BEN: If someone's a Java developer, certain idioms might not make sense to them that come from the JavaScript world. CHARLES: Right. But if I was learning like a student, I would think mappable, I'd be thinking like, I would literally be thinking like Google Maps or something like that. I don't know. BEN: Right, right. I mean, look at C#. C#, a mapping function is always going to be called select, right, because that's C#. That's their idiom for the same thing. CHARLES: Select? BEN: Yeah. CHARLES: Really? BEN: Yeah, select. So, they'll… CHARLES: Which in Ruby is like find. BEN: Yeah. there's select and then, what's the other one, ‘select many' or something like that. [Chuckles] BEN: So, that's C#. CHARLES: Oh, like it's select from SQL. Okay. BEN: Yeah, I think that's kind of where it came from because people had link and then they had link to SQL and then they're like, well I want to do this with regular code, with just using some more… less nuanced expressions. So, I want to be able to do method calls and chain those together. And so, you end up with select functions. And I think that that exists even in Rx.NET, although I haven't used Rx.NET. CHARLES: Hmm, okay. ELRICK: So, I know you do a lot of training with Rx. What are some of the concepts that people struggle with initially? TRACY: I think when we're teaching RX Workshop, a lot of the people sort of… I'll even see senior level people struggle with explaining it, is the difference between observables and observers and then wrapping their head around the idea that, “Hey, observables are just functions in JavaScript.” So, they're always thinking observables are going to do something for you. Actually, it's not just in Angular but also in React, but whenever someone's having issues with their Rx applications, it's usually something that they're like nesting observables or they're not subscribing to something or they've sort of hot-messed themselves into a tangle. And I'm sure you've debugged a bunch of this stuff before. The first thing I always ask people is, “Have you subscribed?” Or maybe they're using an Angular… they're using pipes async but they're also calling ‘dot subscribe' on their observable. BEN: Yeah. So, like in Angular they'll do both. Yeah. There's that. I think that, yeah, that relates to the problem of people not understanding that observables are really just functions. I keep saying that over and over again and people really don't seem to take it to heart for whatever reason. [Chuckles] BEN: But you get an observable and when you're chaining all those operators together, you're making another observable or whatever, observables don't do anything until you subscribe to them. They do nothing. CHARLES: Shouldn't they be called like subscribable? BEN: Yes. [Chuckles] BEN: They probably should. But we do hand them an observer. So, you are observing something. But the point being is that they don't do anything at all until you subscribe to them. And in that regard, they're like functions, where functions don't do anything unless you call them. So, what ends up happening with an observable is you subscribe to it. You give it an observer, three callbacks which are then coerced into an observer. And it takes that observer and it hands it to the body of this observable definition and literally has an observer inside of there. And then you basically execute that function synchronously and do things, whatever those things are, to set up some sort of observation. Maybe you spin up a WebSocket and tie into some events on it and call next on the observer to get values out of your observable. The point being that if you subscribe to an observable twice, it's the same thing as calling a function twice. And for some reason, people have a hard time with that. They think, if I subscribe to the observable twice, I've only called the function once. CHARLES: I experienced this confusion. And I remember the first time that that… like, I was playing with observables and the first time I actually discovered that, that it was actually calling my… now what do you call the function that you pass to the constructor that actually does, that calls next or that gets passed the observer? TRACY: [Inaudible] BEN: I like to call it an initialization function or something. But the official name from the TC39 proposal is subscriber function. CHARLES: Subscriber function. So, like… BEN: Yeah. CHARLES: I definitely remember it was one of those [makes explosion sound] mind-blowing moments when I realized when I call my subscribe method, the entire observable got run from the very beginning. But my intuition was that this is an object. It's got some shared state, like it's this quasar that I'm now observing and I'm seeing the flashes of light coming off of it. But it's still the same object. You think of it as having yeah, not as a function. Okay. No one ever described it to me as just a function. But I think I can see it now. ELRICK: Yeah, me neither. CHARLES: But yeah, you think of it in the same way that most people think of objects, as like, “I have this object. I have a reference to it.” Let observable equal new observable. It's a single thing. It's a single identity. And so, that's the thing that I'm observing. It's not that I'm invoking this observable to observe things. And I think that's, yeah, that's a subtle nuance there. I wish I had taken y'all's course, I guess is what I'm saying. ELRICK: Yeah. BEN: Yeah. Well, I've done a few talks on it. CHARLES: [Laughs] BEN: I always try to tell people, “It's just a function. It's just a function.” I think what happens to a lot of people too is there's the fact that it's an object. But I think what it is, is people's familiarity with promises does this. Because promises are always multicast. They are always “hot”. And the reason for this is because they're eager. So, by the time you have a promise, whatever is producing value to the promise has already started. And that means that they're inherently a multicast. CHARLES: Right. BEN: So, people are used to that behavior of, I can ‘then' off of this promise and it always means one thing. And it's like, yeah, because the one thing has nothing to do with the promise. It wasn't [Chuckles] CHARLES: Right. BEN: This promise is just an interface for you to view something that happened in the past, where an observable is more low-level than that and more simple than that. It just states, “I'm a function that you call. I'm going to be able to do anything a function can do. And by the way, you're giving me an observer and I'm going to do some stuff with that too and notify you via this observer that you handed me.” Because of that you could take an observable and close over something that had already started. Say you had a WebSocket that was already running. You could create a new observable and just like any function, close over that, externally create a WebSocket. And then everyone that subscribes to that observable is tying an observer to that same WebSocket. Then you're multicast. Then you're “hot”. ELRICK: [Inaudible] CHARLES: Right. So, I was going to say that's the distinction that Jay was talking about. He was talking about we're going to just talk about… he said at the very beginning, “We're just going to talk about hot observable.” ELRICK: Yup. CHARLES: But even a hot observable is still theoretically evaluating every single time you subscribe. You're getting a new observable. You're evaluating that observable afresh each time. It just so happens that in the lexical scope of that observable subscriber function, there is this WebSocket? BEN: Yeah. So, it's the same thing. Imagine you wrote a function that when you called it created a new WebSocket and then… say, you wrote a new function that you gave an observer object to, right? An observer object has next, error, and complete. And in that function, when you called it, it created a new WebSocket and then it tied the ‘on message' and ‘on close' and whatever to your observer's next method and your observer's error message and so on. When you call that function, you would expect a new WebSocket to be created every single time. Now, let's just say alternately you create a WebSocket and then you write a new function that that function closes over that WebSocket. So, you reference the WebSocket that you externally created inside of your function. When you call that function, it's not going to create a new WebSocket every time. It's just closing over it, right? So, even though they both are basically doing the same thing, now the latter one of those two things is basically a hot observable and the former is a cold observable. Because one is multicast which is, “I'm sharing this one WebSocket with everybody,” and the other one is unicast which is, “I am going to create a new WebSocket for each person that calls me.” And that's the [inaudible] people have a hard time with. CHARLES: Right. But really, it's just a matter of scope. BEN: Yeah. The thing people have a hard time with, with observables, is not realizing that they're actually just functions. CHARLES: Yeah. I just think that maybe… see, when I hear things like multicast and unicast, that makes me think of shared state, whereas when you say it's just a matter of scope, well then I'm thinking more in terms of it being just a function. It just happens that this WebSocket was already [scoped]. BEN: Well, shared state is a matter of scope, right? CHARLES: Yes, it is. It is. Oh, sorry. Shared state associated with some object identity, right? BEN: Right. CHARLES: But again, again, it's just preconceptions, really. It's just me thinking that I've had to manage lists of listeners and have multicast observers and single-cast observers and having to manage those lists and call notify on all of them. And that's really not what's happening at all. BEN: Yeah. Well, I guess the real point is observables can have shared state or they could not have shared state. I think the most common version and the most composable version of them, they do not have any shared state. It's just one of those things where just like a function can have shared state or it could be pure, right? There's nothing wrong with either one of those two uses of a function. And there's nothing wrong with either one of those two uses of Observable. So, honest to god, that is the biggest stumbling block I think that I see people have. That and if I had to characterize it I would say fear and loathing over the number of operators. People are like… CHARLES: [Chuckles] BEN: And they really think because everyone's used to dealing with these frameworks where there's an idiomatic way to do everything, they think there's going to be an RxJS idiomatic way to do things. And that's just patently false. That's like saying there's an idiomatic way to use functions. There's not. Use it however it works. The end. It's not… CHARLES: Mmhmm, mmhmm. BEN: You don't have to use every operator in a specific way. You can use it however works for you and it's fine. ELRICK: I see that you guys are doing some fantastic work with your documentation. Was that part of RxJS 2.0 docs? TRACY: I was trying to inspire people to take on the docs initiative because I think when I was starting to learn RxJS I would get really frustrated with the docs. BEN: Yeah. TRACY: I think the docs are greatly documented but at the same time if you're not a senior developer who understands Rx already, then it's not really helpful. Because it provides more of a reference point that the guys can go back and look at, or girls. So anyways, after many attempts of trying to get somebody to lead the project I just decided to lead the project myself. [Laughter] TRACY: And try to get… the community is interesting because I think because the docs can be sometimes confusing… Brian Troncone created LearnRxJS.io. There's these other visualization projects like RxMarbles, RxViz, et cetera. And we just needed to stick everybody together. So, it's been a project that I think has been going on for the past two months or so. We have… it's just an Angular app so it's probably one of the most easiest projects to contribute to. I remember the first time I tried to contribute to the Ember docs. It literally took me an hour to sit there with a learning team, Ember Learning Team member and… actually, maybe it was two hours, just to figure out how the heck… like all the things I had to download to get my environment set up so that I could actually even contribute to the darn documentation. But with the Rx, the current RxJS docs right now is just an Angular app. You can pull it down. It's really easy. We even have people who are just working on accessibility, which is super cool, right? So, it's a very friendly place for beginners. BEN: I'm super pleased with all the people that have been working on that. Brian and everybody, especially on the accessibility front. Jen Luker [inaudible] came in and voluntarily… she's like the stopgap for all accessibility to make sure everything is accessible before we release. So, that's pretty exciting. TRACY: Yeah. ELRICK: Mmhmm. TRACY: So funny because when me and Jen started talking, she was talking about something and then I was like, “Oh my god, I'm so excited about the docs.” She's like, “I'm so excited, too! But I don't really know why I'm excited. But you're excited, so I'm excited. Why are you excited?” [Laughter] TRACY: I was like, “I don't know. But I'm excited, too!” [Chuckles] TRACY: And then all of a sudden we have accessibility. [Laughs] ELRICK: Mmhmm. Yeah, I saw some amazing screenshots. Has the new docs, have they been pushed up to the URL yet? TRACY: Nah, they are about to. We were… we want to do one more accessibility run-through before we publish it. And then we're going to document. We want to document the top 15 most viewed operators. But we should probably see that in the next two weeks or so, that the new docs will be… I mean, it'll say “Beta, beta, beta” all over everything. But actually also, some of our friends, [Dmitri] from [Valas] Software, he is working on the translation portion to make it really easy for people to translate the docs. CHARLES: Ah. TRACY: So, a lot of that came from the inspiration from the Vue.js docs. we're taking the versioning examples that Ember has done with their docs as inspiration to make sure that our versioning is really great. So, it's great that we can lend upon all the other amazing ideas in the industry. ELRICK: Oh, yeah. CHARLES: Yeah, it's fantastic. I can't wait to see them. ELRICK: Yeah, me neither. The screenshots look amazing. I was like, “Wow. These are some fabulous documentation that's going to be coming out.” I can't wait. TRACY: Yeah. Thank you. CHARLES: Setting the bar. ELRICK: Really high. [Laughter] CHARLES: Actually, I'm curious. Because observables are so low-level, is there some use of them that… what's the use of them that you found most surprising? Or, “Whoa, this was a crazy hack.” BEN: The weirdest use of observables, there's been quite a few odd ones. One of the ones that I did one time that is maybe in RxJS's wheelhouse, it was just that RxJS already existed. So, I didn't want to pull in another transducer library, was using RxJS as a transducer. Basically… in Netflix we had a situation where we had these huge, huge arrays of very large objects. And if you try to take something like that and then map it and then filter it and then map it and then filter it, we're using Array map and filter, what ends up happening is you create all sorts of intermediary arrays in-memory. And then garbage collection has to come through and clean that up. And that locks your thread. And over time, we were experiencing slowness with this app. And it would just build up until eventually it ground to a halt. And I used RxJS because it was an available tool there to wrap these arrays in an observable and then perform operations on them step-by-step, the same map, filter, and so on. But when you do that, it doesn't create intermediary arrays because it passes each value along step to step instead of producing an entire array and then doing another step and producing an entire array, and so on. So… CHARLES: So, will you just… BEN: It saved garbage collection and it increased the performance of the app. But that's just in an extreme case. I would never do that with just regular arrays. If anything, it was because it was huge, huge arrays of very large objects. CHARLES: So, you would create an observable our of the array and then just feed each element into the observable one at a time? BEN: Well, no. If you say ‘observable from' and you give it an array, that's basically what it does. CHARLES: Okay. BEN: It loops over the array and nexts those values out of the array synchronously. CHARLES: I see, I see. BEN: So, it's like having a for loop and then inside of that for loop saying, “Apply the map. Apply the filter,” whatever, to each value as they're going through. But when you look at it, if you had array map, filter, reduce, it's literally just taking the first step and saying ‘observable from' and wrapping that array and then the rest of it's still the same. CHARLES: Right. Yeah. No, that's really cool. BEN: That was a weirder use of it. I've heard tell of other things where people used observables to do audio synchronization, which is pretty interesting. Because you have to be very precise with audio synchronization. So, hooking into some of the Web Audio APIs and that sort of thing. That's pretty interesting. The WebSocket multiplexing is something I did at Netflix that's a little bit avant-garde for observable use because you essentially have an observable that is your WebSocket. And then you create another observable that closes over that observable and sends messages over the WebSocket for what you're subscribed to and not subscribed to. And it enables you to very easily retry connections and these sorts of things. I did a whole talk on that. That one's pretty weird. CHARLES: Yeah. Man, I [inaudible] to see that. BEN: But in the general use case, you click a button, you make an AJAX request, and then you get that back and maybe you make another AJAX request. Or like drag and drop and these sorts of things where you're coordinating multiple events together, is the general use case. The non-weird use case for RxJS. Tracy does weird stuff with RxJS though. [Laughter] CHARLES: Yeah, what's some weird uses of RxJS? TRACY: I think my favorite thing to do right now is to figure out how many different IoT-related things I can make work with RxJS. So, how many random things can I connect to an application using that? BEN: Tracy's projects are the best. They're so good. [Laughter] TRACY: Well, Ben and I created an application where you can take pictures of things using the Google Image API and it'll spit back a set of puns for you. So, you take a picture of a banana, it'll give you banana puns. Or you can talk to it using the speech recognition API. My latest thing is I really want to figure out how to… I haven't figured out if Bluetooth Low Energy is actually enabled on Google Home Minis. But I want to get my Google Home Mini to say ‘booty'. [Inaudible] [Laughter] CHARLES: RxJS to the rescue. [Laughter] BEN: Oh, there was, you remember Ng-Cruise. We did Ng-Cruise and on there, Alex Castillo brought… TRACY: Oh, that was so cool. BEN: All sorts of interesting… you could read your brain waves. Or there was another one that was, what is it, the Microsoft, that band put around your wrist that would sense what direction your arm was in and whether or not your hand was flexed. And people… TRACY: Yeah, so you could flip through things. BEN: Yeah. And people were using reactive programming with that to do things like grab a ball on the screen. Or you could concentrate on an image and see if it went blurry or not. ELRICK: Well, for like, Minority Report. BEN: Oh, yeah, yeah. Literally, watching a machine read your mind with observables. That was pretty cool. That's got to be the weirdest. TRACY: Yeah, or we had somebody play the piano while they were wearing one of the brainwave… it's called the OpenBCI project is what it is. And what you can do is you can actually get the instructions to 3D print out your own headset and then buy the technology that allows you to read brain waves. And so with that, it's like… I mean, it was really awesome to watch her play the piano and just see how her brain waves were going super crazy. But there's also these really cool… I don't know if you guys have heard of Jewelbots, but they're these programmable friendship bracelets that are just little Arduino devices that light up. I have two of them. I haven't even opened them. CHARLES: [Laughs] TRACY: I've been waiting to play with them with you. I don't know what we're going to do, but I just want to send you lights. Flashing lights. [Laughter] TRACY: Morse code ask you questions about RxJS while you're working. [Laughter] CHARLES: Yeah. Critical bug. Toot-toot-toot-too-too-too-too-toot-toot. [Laughter] CHARLES: RxJS Justice League. TRACY: That would actually be really fun. [Laughter] TRACY: That would be really fun. I actually really want to do that. But… CHARLES: I'm sure the next time we talk, you will have. TRACY: [Laughs] Yes. Yes, yes, yes, I know. I know. we'll do it soon. We just need to find some time while we're not going crazy with conferences and stuff like that. CHARLES: So, before we head out, is there any upcoming events, talks, releases, anything that we ought to be, we or the listeners, ought to be aware of? TRACY: Yeah, so one of the things is that Ben and I this weekend actually just recorded the latest version of RX Workshop. So, if you want to learn all about the latest, latest, newest new, you can go ahead and take that course. We go through a lot of different things like multiplex WebSockets, building an application. Everywhere from the fundamentals to the more real world implementations of RxJS. BEN: Yeah. Even in the fundamentals area, we've had friends of ours that are definitely seasoned Rx veterans come to the workshop. And most of them ask the most questions while talking about the fundamentals. Because I tend to dig into, either deep into the internals or into the why's and how's thing. Why and how things work. Even when it comes to how to subscribe to an observable. Deep detailed information about what happens if you don't provide an error handler and certain cases and how that's going to change in upcoming versions, and why that's changing in upcoming versions, and what the TC39's thoughts are on that, and so on and so forth. So, I try to get into some deeper stuff and we have a lot of fun. And we tend to be a little goofier at the workshops from time to time than we were in this podcast. Tracy and I get silly when we're together. TRACY: It's very true. [Laughter] TRACY: But I think also, soon I think there are people that are going to be championing an Observable proposal on what [inaudible]. So, aside from the TC39 Observable proposal that's currently still at stage one, I don't know Ben if you want to talk a little bit about that. BEN: Oh, yeah. So, I've been involved in conversations with folks from Netflix and Google as well, Chrome team and TC39 members, about getting the WHATWG, the ‘what wig', they're a standards body similar to W3C, to include observables as part of the DOM. The post has not been made yet. But the post is going to be made soon as long as everybody's okay with it. And what it boils down to is the idea of using observables as part of event targets. An event target is the API we're all familiar with for ‘add event listener', ‘remove event listener'. So, pretty much anywhere you'd see those methods, there might also someday be an on method that would return an observable of events. So, it's really, really interesting thing because it would bring at least the primitives of reactive programming to the browser. And at the very least it would provide maybe a nicer API for people to subscribe to events coming from different DOM elements. Because ‘add event listener' and ‘remove event listener' are a little unergonomic at times, right? CHARLES: Yeah. They're the worst. BEN: Yeah. CHARLES: That's a very polite way of putting it. BEN: [Chuckles] So, that's one thing that's coming down the pipe. Other things, RxJS 6 is in the works. We recently tied off 5.5 in a stable branch. And master is now our alpha that we're working on. So, there's going to be a lot of refactoring and changes there, trying to make the library smaller and smaller. And trying to eliminate some of the footprints that maybe people had in previous versions. So, moving things around so people aren't importing stuff that were meant to be implementation details, reducing the size of the library, trying to eliminate some bloat, that sort of thing. I'm pretty excited about that. But that's going to be in alpha ongoing for a while. And then hopefully we'll be able to move into beta mid first quarter next year. And then when that'll be out of beta, who knows? It all depends on how well people like the beta and the alpha, right? CHARLES: Alright. Well, so if folks do want to follow up with y'all either in regards to the course or to upcoming releases or any of the other great stuff that's coming along, how would they get in touch with y'all? TRACY: You can find me on Twitter @ladyleet. But Ben is @BenLesh. RX Workshop is RXWorkshop.com. I think in January we're going to be doing state of JavaScript under This Dot Media again. So, that's where all the core contributors of different frameworks and libraries come together. So, we'll definitely be giving a state of RxJS at that time. And next year also Contributor Days will be happening. So, if you go to ContributorDays.com you can see the previous RxJS Contributor Days and figure out how to get involved. So, we're always open and happy and willing to teach everybody. And again, if you want to get involved it doesn't matter whether you have little experience or lots of experience. We are always willing to show you how you can play. BEN: Yeah. You can always find us on Twitter. And don't forget that if you don't find Tracy or I on Twitter, you can always message Jay Phelps on Twitter. That's important. @_JayPhelps. Really. TRACY: Yeah. [Laughter] BEN: You'll find us. CHARLES: [Chuckles] Look for Jay in the show notes. [Laughter] CHARLES: Alright. Well, thank you so much for all the stuff that y'all do, code and otherwise. And thank you so much Ben, thank you so much Tracy, for coming on the show. BEN: Thank you. CHARLES: Bye Elrick and bye everybody. If you want to reach out to us, you can always get in touch with us at @TheFrontside or send us an email at contact@frontside.io. Alright everybody, we'll see you next week.
The Leadership Africa Learning Team reflects on their recent trip to Zambia and Mozambique.