Podcasts about asts

  • 66PODCASTS
  • 154EPISODES
  • 51mAVG DURATION
  • 1EPISODE EVERY OTHER WEEK
  • Apr 30, 2025LATEST

POPULARITY

20172018201920202021202220232024


Best podcasts about asts

Latest podcast episodes about asts

Investing with IBD
Ep. 318 How Rocket Lab And ASTS Are Creating Out-Of-This World Innovations

Investing with IBD

Play Episode Listen Later Apr 30, 2025 47:30


Spacing out a bit in a tumultuous market? Here's why Andrew Chanin, CEO of ProcureAM is looking for otherworldly innovation in stocks like Rocket Lab and ASTS, even in a risk-on investing environment. But it's not all about being starry-eyed: Chanin explains why other space-related names could see a rougher time ahead. Learn more about your ad choices. Visit megaphone.fm/adchoices

Los Locos de Wall Street
EP.#17-2025 El ORO rompe récords ¿Hasta dónde puede llegar? | ASTS: ¿la acción espacial del momento?

Los Locos de Wall Street

Play Episode Listen Later Apr 28, 2025 127:31


í : https://locosdewallstreet.com/financial-research Sanedrín LWS | Oro en máximos, ASTS Technologies, resultados de Tesla y el lanzamiento de nuestra web de Research ¡Bienvenidos a un nuevo episodio de Sanedrín, el programa estrella de Locos de Wall Street! Hoy traemos una sesión cargada de análisis y oportunidades de inversión: El oro alcanza máximos históricos: Analizamos si seguirá subiendo, riesgos y ejemplos de acciones ganadoras en este entorno. ¿ASTS Technologies a punto de despegar?: Descubre si esta compañía puede ser la próxima gran oportunidad en tu portafolio. Resultados de Tesla: Te explicamos los puntos clave que todo inversor debe conocer tras la presentación de resultados. ¡Lanzamos nuestra nueva web de Research!: Te contamos todo sobre el nuevo portal de LWS Financial Research, tu nuevo aliado para invertir de manera informada. ══════════════ NUEVOS CURSOS ABIERTOS: ó https://locosdewallstreet.com/producto/curso-avanzado-inversion-en-bolsa/ : (COMIENZO LUNES 28 ABRIL) https://locosdewallstreet.com/producto/curso-fundamentos-y-productos-de-renta-fija-3/ ó í NUEVAS PLAZAS https://locosdewallstreet.com/producto/curso-de-inversion-en-materias-primas-y-energia-4/ ESTRENAMOS CURSO GRATUITO: Curso de Introducción a la Inteligencia Artificial: https://locosdewallstreet.com/form-registro-curso-gratis-ia/ ══════════════ ¿TE GUSTARÍA PERTENECER A NUESTRA COMUNIDAD GRATUITA? Discord: https://discord.gg/AY6ybTX3md ══════════════ Í : Síguenos en Twitter: https://x.com/LocosWallStreet https://x.com/lwsresearch https://x.com/EFernandezVidal https://x.com/ahidalgoa SÍGUENOS en: https://linktr.ee/locosdewallstreet (Todos nuestros enlaces en un solo sitio) DISCLAIMER El contenido de este canal de YouTube tiene exclusivamente fines educativos y no constituye asesoramiento financiero ni recomendaciones de inversión. Todos los temas tratados están diseñados para ayudar a los espectadores a entender mejor el mundo de las finanzas, pero las decisiones de inversión deben tomarse de forma personal y bajo la responsabilidad de cada individuo. Invertir en mercados financieros conlleva riesgos significativos debido a su complejidad y volatilidad. Es posible perder parte o la totalidad del capital invertido. Por ello, es fundamental que realices tu propio análisis antes de tomar cualquier decisión y, si lo consideras necesario, consultes con un profesional financiero acreditado. Recomendamos: Contar con un fondo de emergencia equivalente a al menos tres meses de tus gastos básicos antes de invertir. Analizar muy detenidamente y con precisión cualquier inversión. En caso de duda consultes con un asesor financiero certificado por CNMV Mantenerte alejado de promesas de rentabilidades astronómicas, dinero rápido u otros esquemas engañosos. En Locos de Wall Street, nuestra misión es fomentar una educación financiera sólida, ética y accesible para todos, ayudando a nuestros seguidores a tomar decisiones informadas y responsables. #Oro #ASTS #Acciones #Inversión #Sanedrín #LocosDeWallStreet #tesla

The Property Unleashed Podcast
Is The Renters Right Bill Going To Kill Rent 2 Rent?

The Property Unleashed Podcast

Play Episode Listen Later Mar 13, 2025 8:20 Transcription Available


Send us a textThe new Renter's Right Bill is causing unnecessary panic in the property investment community about the future of rent-to-rent strategies. Mark Fitzgerald explains why this concern is misplaced and how properly structured rent-to-rent businesses will continue to thrive despite legislative changes.• Renter's Right Bill is changing ASTs from fixed-term to month-by-month rolling contracts• Many incorrectly claim this will kill rent-to-rent strategies• Professional rent-to-rent operators never use ASTs with landlords• Management agreements or commercial lease agreements are the correct contracts to use• ASTs are only used between the operator and tenants, not with property owners• Focus on finding landlords who value property maintenance and preservation• Quality properties require less frequent repairs and redecoration• A handful of well-managed properties can provide substantial cash flow• Delivering a VIP service to landlords is key to sustainable success• Proper training and systems are essential before attempting this strategyFor free tools, resources, and training on proper rent-to-rent implementation, visit thepropertyunleashed.com where you'll find e-books on HMO rent-to-rent, serviced accommodation, deal sourcing, deal analyzers, and free masterclass training.VALUABLE RESOURCES: Visit www.thepropertyunleashed.com to explore are free Property Ebooks and guides in Rent-to-Rent, Serviced Accommodation, Deal Sourcing and and also our FREE training masterclasses to help you generating a sustainable income through property. https://www.facebook.com/groups/816926952556608 to meet like-minded property investors and be a part of the community. Attend your first property investors network (pin) Meeting for free by using the voucher code “Mark31” CONNECT WITH ME: Facebook: https://www.facebook.com/mark.fitzgerald.7921Instagram: https://www.instagram.com/markfitzgeraldentrepreneur/Linkedin: https://www.linkedin.com/in/mark-fitzgerald-59200079/YouTube: https://www.youtube.com/channel/UCgwQNC72nEJQ0tKkKERdQOQThreads: https://www.threads.net/@markfitzgeraldentrepreneur http://www.thepropertyunleashed.com

Spareprat
DNB Disruptive muligheter: Fremtidens mobildekning med ny satellitt-teknologi

Spareprat

Play Episode Listen Later Mar 6, 2025 39:41


Denne uken har Marius Brun Haugen reist til Barcelona for å delta på Mobile World Congress (MWC) sammen med Audun Wickstrand Iversen og Mikkel Nyholt. De forvalter fondene DNB Disruptive Opportunities og DNB Future Waves.MWC er en av de største og viktigste teknologimessene for mobil- og telekomindustrien, hvor en rekke ledende selskaper deler siste nytt om neste fase av 5G-utviklingen, vekst og utvikling i internet of things, videreutvikling av kunstig intelligens med AI-agenter, cybersikkerhet, optimalisering av datatrafikk og mye mer. Audun og Mikkel er spesielt opptatt av hvordan ny satellitt-teknologi og selskapet AST Spacemobile kan penetrere telekomindustrien og bidra til at vi har full bredbåndsdekning på mobilen uansett hvor vi befinner oss. I denne episoden hører du mer om dette og nyhetene som ASTS presenterte denne uken. Episoden ble spilt inn 5. mars 2025Produsent: Kim-André Farago, DNB Wealth Managment Hosted on Acast. See acast.com/privacy for more information.

Los Locos de Wall Street
EP.#7-2025 ASTS: ¿Cohete en bolsa? |NMM resultados |Trump y la paz Rusia-Ucrania

Los Locos de Wall Street

Play Episode Listen Later Feb 17, 2025 137:39


Hoy traemos el SANEDRÍN más visto en directo de la historia de LWS. 1800 personas en directo viendo el programa de referencia para los inversores en bolsa. TEMAS DESTACADOS: ✅ Hablamos de la estrategia que ha hecho uno de los mejores INVERSORES del momento: BILL ACKMAN ✅ ASTS Technologies: ¿Por qué está subiendo tanto? ¿Es una oportunidad de inversión? ✅ Estrategia con OPCIONES: Albert Millán nos revela su método ganador en LWS Financial Research. ✅ NMM Maritime Partners: Presenta resultados, ¿es buen momento para invertir en SHIPPING? ✅ Paz entre RUSIA y UCRANIA: ¿Cómo afectará al petróleo (oil) y al gas? ¿Trump lo conseguirá? MIRA EL VIDEO COMPLETO Y DÉJANOS TU OPINIÓN ══════════════ ➡️Apúntate al Research de LWS desde menos de 1,5 € al día https://lwsfinancialresearch.substack... ══════════════ ABRIMOS MATRÍCULAS EN TRES NUEVOS CURSOS: ➡️ I Edición https://locosdewallstreet.com/product... ➡️ I Edición ó https://locosdewallstreet.com/product... ➡️ VII Edición ó https://locosdewallstreet.com/product... ══════════════ ¿TE GUSTARÍA PERTENECER A NUESTRA COMUNIDAD GRATUITA? Discord: / discord ══════════════ Í : Síguenos en Twitter: https://x.com/LocosWallStreet https://x.com/lwsresearch https://x.com/EFernandezVidal https://x.com/ahidalgoa https://x.com/aleix_amoros / locosdewallstreet / los-locos-de-wall-street SÍGUENOS en: https://linktr.ee/locosdewallstreet (Todos nuestros enlaces en un solo sitio) ══════════════ DISCLAIMER El contenido de este canal de YouTube tiene exclusivamente fines educativos y no constituye asesoramiento financiero ni recomendaciones de inversión. Todos los temas tratados están diseñados para ayudar a los espectadores a entender mejor el mundo de las finanzas, pero las decisiones de inversión deben tomarse de forma personal y bajo la responsabilidad de cada individuo. Invertir en mercados financieros conlleva riesgos significativos debido a su complejidad y volatilidad. Es posible perder parte o la totalidad del capital invertido. Por ello, es fundamental que realices tu propio análisis antes de tomar cualquier decisión y, si lo consideras necesario, consultes con un profesional financiero acreditado. Recomendamos: Contar con un fondo de emergencia equivalente a al menos tres meses de tus gastos básicos antes de invertir. Analizar muy detenidamente y con precisión cualquier inversión. En caso de duda consultes con un asesor financiero certificado por CNMV Mantenerte alejado de promesas de rentabilidades astronómicas, dinero rápido u otros esquemas engañosos. En Locos de Wall Street, nuestra misión es fomentar una educación financiera sólida, ética y accesible para todos, ayudando a nuestros seguidores a tomar decisiones informadas y responsables. #trading

Capital
Consultorio de Bolsa con Javier Alfayate: “Es momento de ser prudente y buscar calidad”

Capital

Play Episode Listen Later Jan 28, 2025 26:13


En Capital Intereconomía, Javier Alfayate, experto en bolsa, compartió su análisis sobre la situación actual de los mercados y ofreció consejos clave para los inversores. Durante su intervención, destacó la importancia de mantener la calma en un contexto económico lleno de incertidumbre. “Es momento de ser prudente y buscar calidad en los valores”, afirmó Alfayate, subrayando que los inversores deben centrarse en empresas sólidas con buenos fundamentales. Según él, los sectores defensivos, como las utilities y el consumo básico, podrían ofrecer estabilidad en el actual escenario de cambios constantes Además, Alfayate respondió a las consultas de los oyentes sobre varios valores . Algunos de los nombres más destacados fueron Inditex, Iberdrola, Santander, Repsol y Grifols. Alfayate destaca la necesidad de diversificar la cartera y no centrarse exclusivamente en valores españoles. “Es recomendable mirar al mercado estadounidense y europeo, donde encontramos opciones interesantes en tecnología y salud”, añadió. Finalmente, Alfayate aconseja no dejarse llevar por el miedo ni por las emociones a la hora de tomar decisiones de inversión. Valores mencionados: Inditex, Iberdrola, ASTS, Indra ,Santander, Repsol y Grifols.

Motley Fool Money
Space Internet Comes to Earth

Motley Fool Money

Play Episode Listen Later Dec 21, 2024 32:27


For the most part, our phones work about 95% of the time. But head outside of suburbia, and things get patchy quickly. What would it take to close that final 5% gap? Scott Wisniewski is the President and Chief Strategy Officer of AST Space Mobile, a satellite company that's trying to bring connectivity literally everywhere – the desert, the ocean, the air, everywhere. Ricky Mulvey caught up with Wisniewski to discuss: - What universal connectivity actually achieves. - The operational challenges of getting something as large as a cell tower onto something as small as a rocket. - And the developing “land grab” in low-earth orbit.  Companies discussed: ASTS, VOD, VZ, TMUS,  Host: Ricky Mulvey Guests: Scott Wisniewski Producer: Mary Long Engineers: Rick Engdahl Learn more about your ad choices. Visit megaphone.fm/adchoices

BD4
Knicks Clutch Up Late In Toronto (Episode 757)

BD4

Play Episode Listen Later Dec 10, 2024 33:25


The Knicks have now won 10 of 13 after starting their season 5-6. Let's talk about last night's win in Toronto, behind some exceptional facilitating, timely shot-making, and late defense. Trivia: What were Carmelo Anthony's final averages in PTS, REBS, & ASTS at the end of the 2012-13 season? 28-6-4? 27-5-3? 29-7-3? 26-8-2? 0:00 Intro 2:02 Game Recap & Thoughts 4:48 Lethargic Early 7:23 Team Defense Getting In Sync? 14:05 Exceptional Facilitating 21:36 PROMO BREAK 23:29 Bing Bong Game Ball (Starters): KAT 25:15 Bing Bong Game Ball (Reserves): Deuce 26:35 Up Next 27:53 PROMO BREAK 29:10 R.J.'s Parlay 30:48 Trivia 32:11 Outro *SUPPORT THE POD* https://account.venmo.com/u/Robert-Carbone-Jr-28 Audio

The TraderLion Podcast
+222% Return in 27 Days - The High Tight Flag Trading Setup | Leif Soreide

The TraderLion Podcast

Play Episode Listen Later Oct 28, 2024 49:33


Motley Fool Money
Recipes for Sales Growth, Mac and Cheese

Motley Fool Money

Play Episode Listen Later Oct 10, 2024 28:46


More is not always better. (00:21) Jason Moser and Ricky Mulvey discuss: - Why the Department of Justice may breakup Alphabet. - If the search giant is a cheap stock. - Quarterly results from Domino's and its new mac and cheese offering. Then (15:25) Motley Fool contributor Lou Whiteman joins Ricky Mulvey to discuss RocketLab, the space industry, and the difficulty of valuing speculative companies. Visit our sponsor: Get $1,000 off Vanta at www.vanta.com/fool Jason's mac and cheese recipe: https://docs.google.com/document/d/14iq3L1m8W1iBmXSkAIyIylDrtbnvoEcg3N5KfRwR0jA/edit?usp=sharing Vote for Motley Fool Money in the 2024 Signal Awards for best money and finance podcast: https://vote.signalaward.com/PublicVoting#/2024/shows/general/money-finance Companies discussed: GOOG, GOOGL, DPZ, YUM, RKLB, ASTS, LUNR Host: Ricky Mulvey Guests: Jason Moser, Lou Whiteman Producer: Dylan Lewis Engineers: Rick Engdahl, Desireé Jones Learn more about your ad choices. Visit megaphone.fm/adchoices

Insider Financial Talks Penny Stocks
URGENT: The Stocks To Watch This Week!

Insider Financial Talks Penny Stocks

Play Episode Listen Later Sep 30, 2024 11:24


Insider Financial recaps last week's stock market action and covers the stocks to watch this week. This video covers stocks such as SPY, QQQ, DIA, IWM, TLT, CAPR, DJT, LUNR, NIO, RKLB, ASTS, GEVO, BMEA, RELI. To get our FREE reports and eBook: https://www.insiderfinancial.com/ URGENT: The Stocks To Watch This Week! Disclosure: Insider Financial has not been compensated for this video. Insider Financial is not an investment advisor; this video does not provide investment advice. Always do your research, make your own investment decisions, or consult with your nearest financial advisor. This video is not a solicitation or recommendation to buy, sell, or hold securities. This video is our opinion, is meant for informational and educational purposes only, and does not provide investment advice. Past performance is not indicative of future performance. For more information, please read our full disclaimer: https://insiderfinancial.com/disclaimer/ S&p 500, Dow, Nasdaq, SPY ETF, QQQ ETF, quantum computing stocks, Spac stocks, AI stocks, Bitcoin, crypto, Bitcoin stocks, crypto stocks, short squeeze, short squeeze stocks, low float, low float stocks, lithium stocks, ev stocks, small caps, trading, otc stocks, otc stocks list, penny stocks, penny stocks list, NASDAQ penny stocks, NYSE stocks, NYSE penny stocks, biotech stocks #smallcapstocks #pennystocks #stockstowatch

Motley Fool Money
Easy Money Returns

Motley Fool Money

Play Episode Listen Later Sep 12, 2024 34:01


The European Central Bank cut rates this week and the Fed is expected to cut rates next week. When money gets cheaper, the party gets started. (00:21) David Meier and Ricky Mulvey discuss: - OpenAI's $50 billion valuation jump in one week. - A space SPAC that's more than 10xed since April, 2024. - One of Warren Buffett's top lieutenants selling $140 million of Berkshire Hathaway stock. Then, (16:27) Asit Sharma joins Ricky to look back on Meta's turnaround story and what it means for investors today. Companies discussed: MSFT, ASTS, RKLB, BRK.A, BRK.B, META, LE Visit www.factormeals.com/foolpod50 to get 50% off your first box plus 20% off your next month. Host: Ricky Mulvey Guests: David Meier, Asit Sharma Engineer: Dan Boyd Learn more about your ad choices. Visit megaphone.fm/adchoices

投資唔講廢話
第203集 | 又一隻十倍股誕生! 各大廠爭相合作的移動通訊新星 (ASTS) !

投資唔講廢話

Play Episode Listen Later Sep 8, 2024 13:32


錯過了騰訊、Bitcoin、Nvidia…… 這會是下一隻十倍股嗎? 市場上少數仍然生存的SPAC股! 寂寂無名的它如何與Starlink競爭? 現時毫無盈利,但分析師卻認為5年內擁百億收入!?

Radio Free Urbanism
Ep.40 The Green Line, the Texas Triangle, and Remembering Johnny Gaudreau

Radio Free Urbanism

Play Episode Listen Later Sep 5, 2024 71:21


Today on the show Nic is replaced by Alex from Untitled Planning to talk transit, cycling, and more.Untitled Planning: https://www.youtube.com/@UntitledPlanningSend us a question: radiofreeurbanism@gmail.comPatreon: patreon.com/RadioFreeUrbanism Instagram: https://rb.gy/ezn9rzX(Twitter): https://x.com/RFUrbanism?s=20Alex: https://www.youtube.com/@humanecitiesEthan: https://www.youtube.com/@climateandtransitNic: https://www.youtube.com/@nicthedoorLinks: Green Line: https://www.cbc.ca/news/canada/calgary/province-pulling-funding-for-calgary-s-green-line-lrt-project-letter-says-1.7312683Texas Triangle HSR: https://www.msn.com/en-us/news/us/texas-high-speed-rail-gets-64-million-grant/ar-AA1pZZ39?ocid=msedgntp&pc=ASTS&cvid=750bb4a1a86b4a819027c2a913867ace&ei=13Calgary Memorial for Johnny Gaudreau: https://www.youtube.com/watch?v=MVJbXLQAd6QCritical Mass: https://www.threads.net/@peislandergirl/post/C_Vjwj8J1UQ/?xmt=AQGzC0cOdfVHvIdzZzB6hJx2-k1CsDQ98OrdUTIk4k2RGg

Insider Financial Talks Penny Stocks
BREAKING NEWS: This NASDAQ Biotech Just Got FDA Clearance!

Insider Financial Talks Penny Stocks

Play Episode Listen Later Sep 5, 2024 9:29


Insider Financial Profiles Modular Medical Inc (NASDAQ: MODD). To get our FREE reports and eBook: https://www.insiderfinancial.com/ This video covers SPY, QQQ, DIA, IWM, TLT, WISA, MODD, ASTS, YYGH, and AIEV. BREAKING NEWS: This NASDAQ Biotech Just Got FDA Clearance! Disclosure: ONE22 MEDIA, LLC HAS BEEN COMPENSATED A FEE OF FIFTEEN THOUSAND USD BY A THIRD PARTY, LFG EQUITIES CORP FOR A ONE DAY MODD AWARENESS CAMPAIGN. WE HAVE PREVIOUSLY BEEN COMPENSATED A FEE OF FIFTEEN THOUSAND USD BY A THIRD PARTY, LFG EQUITIES CORP FOR A ONE DAY MODD AWARENESS CAMPAIGN. ONE22 MEDIA, LLC HAS BEEN COMPENSATED A FEE OF EIGHTEEN THOUSAND FIVE HUNDRED USD BY A THIRD PARTY, SICA MEDIA, LLC FOR A ONE DAY WISA PROFILE. O22 HAS PREVIOUSLY BEEN COMPENSATED A FEE OF TEN THOUSAND USD BY A THIRD PARTY, SICA MEDIA, LLC FOR A ONE DAY WISA PROFILE. O22 HAS PREVIOUSLY BEEN COMPENSATED A FEE OF TWELVE THOUSAND USD BY A THIRD PARTY, SICA MEDIA, LLC FOR A ONE DAY WISA PROFILE. Insider Financial is not an investment advisor; this video does not provide investment advice. Always do your research, make your own investment decisions, or consult with your nearest financial advisor. This video is not a solicitation or recommendation to buy, sell, or hold securities. This video is our opinion, is meant for informational and educational purposes only, and does not provide investment advice. Past performance is not indicative of future performance. For more information, please read our full disclaimer: https://insiderfinancial.com/disclaimer/ S&p 500, Dow, Nasdaq, SPY ETF, QQQ ETF, quantum computing stocks, Spac stocks, AI stocks, Bitcoin, crypto, Bitcoin stocks, crypto stocks, short squeeze, short squeeze stocks, low float, low float stocks, lithium stocks, ev stocks, small caps, trading, otc stocks, otc stocks list, penny stocks, penny stocks list, NASDAQ penny stocks, NYSE stocks, NYSE penny stocks, biotech stocks #smallcapstocks #pennystocks #biotechstocks

All JavaScript Podcasts by Devchat.tv
Beyond JavaScript: Master TypeScript at Scale at SquiggleConf - JSJ 646

All JavaScript Podcasts by Devchat.tv

Play Episode Listen Later Aug 28, 2024 70:40


Dan together with Josh Goldberg, a prominent open-source maintainer and author of "Learning TypeScript, dive into the world of TypeScript and JavaScript with a special focus on the upcoming Squiggleconf. In this episode, they'll detail the conference format, including its dedicated days for talks and workshops, and highlight the impressive lineup of speakers who will cover topics like ASTs, TypeScript at scale, and essential documentation practices.Josh also shares insights into the evolution and practical application of TypeScript ESLint. Expect a deep dive into TypeScript's latest features, such as generics and specific lint rules that enhance code quality and developer experience.SocialsLinkedIn: ‌Josh ‌GoldbergPicksDan - Dan's favorite standalone fantasy booksDan - Despicable Me and MinionsJosh - NeuromancerJosh - WitcherBecome a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

Voll in die Presse
VIDP#104 – Zombie-Apokalypse, Brain-Food und Survival-Strategie (Zombie-Edition mit Gast Schimmli)

Voll in die Presse

Play Episode Listen Later Jul 30, 2024 89:53


In der einhundertvierten Episode unseres wiedergängigen Medien-Podcasts „Voll in die Presse“ befassen wir uns mit den lebenden Toten – aus Film und Fernsehen auch als wankende Hirngourmets bekannt. Unser Gast Schimmli bringt die nötige Film-Expertise ein, wunderbar ergänzt durch ein launiges Interview der allseits beliebten Fräulein Witzka mit dem Splatter-Experten Señor Inkognito. Stichwort: Zombie-Trash aus dem heimischen DVD-Regal. Dank Shopping-Tipps für Apokalypsen aller Art – von Astsäge bis Persuader – sind unsere Hörenden stets am Puls der Endzeit. Zudem stapeln sich die Einspieler wie Leichen bei der Zombie-Invasion: Wir präsentieren Karlheinz Ballermann (Zombie-Showdown in der Lindenstraße – VIDP#03), Beef Rogers (irgendwo zwischen Männergrippe und Zombie-Seuche) und viele neue Medienschnipsel. Die vollständigen Shownotes mit allen Bildern und Artikel-Links findet ihr unter: www.benanza.de/2024/podcast/vidp104-zombie-apokalypse-brain-food-und-survival-strategie-zombie-edition-mit-gast-schimmli

Insider Financial Talks Penny Stocks
URGENT: A Potential Short Squeeze Under $.25 On The NASDAQ!

Insider Financial Talks Penny Stocks

Play Episode Listen Later Jul 29, 2024 12:54


Insider Financial profiles Knightscope Inc (NASDAQ: KSCP). To get our FREE reports and eBook: https://www.insiderfinancial.com/lp/youtube This video covers KSCP, TKNO, VKTX, BHVN, ASTS, SOUN, and CORZ. URGENT: A Potential Short Squeeze Under $.25 On The NASDAQ! Disclosure: ONE22 MEDIA, LLC HAS BEEN COMPENSATED A FEE OF TEN THOUSAND USD BY A THIRD PARTY, LFG EQUITIES CORP FOR A ONE DAY KSCP PROFILE. O22 HAS PREVIOUSLY BEEN COMPENSATED A FEE OF TWELVE THOUSAND FIVE HUNDRED USD BY A THIRD PARTY, LFG EQUITIES CORP FOR A ONE DAY KSCP PROFILE. WE HAVE PREVIOUSLY BEEN COMPENSATED A FEE OF TWENTY THOUSAND USD BY A THIRD PARTY, NORTH EQUITIES, LLC FOR A ONE DAY KSCP AWARENESS CAMPAIGN. Insider Financial is not an investment advisor; this video does not provide investment advice. Always do your research, make your own investment decisions, or consult with your nearest financial advisor. This video is not a solicitation or recommendation to buy, sell, or hold securities. This video is our opinion, is meant for informational and educational purposes only, and does not provide investment advice. Past performance is not indicative of future performance. For more information, please read our full disclaimer: https://insiderfinancial.com/disclaimer/ S&p 500, Dow, Nasdaq, SPY ETF, QQQ ETF, quantum computing stocks, Spac stocks, AI stocks, Bitcoin, crypto, Bitcoin stocks, crypto stocks, short squeeze, short squeeze stocks, low float, low float stocks, lithium stocks, ev stocks, small caps, trading, otc stocks, otc stocks list, penny stocks, penny stocks list, NASDAQ penny stocks, NYSE stocks, NYSE penny stocks, biotech stocks #smallcapstocks #pennystocks #shortsqueeze

Insider Financial Talks Penny Stocks
GET READY: The Stocks To Watch This Week!

Insider Financial Talks Penny Stocks

Play Episode Listen Later Jul 15, 2024 14:17


Insider Financial covers the stocks we are watching this week. Stocks covered in this video include CASI, JMIA, SOUN, CORZ, OPTT, ASTS, CHPT, MVIS, STEM, LCID, CVNA, ROOT, CTRN, SBUX, WYNN, DIS, NKE, CRK, SPY, QQQ, DIA, IWM, DJT, SCNI. To get our FREE reports and eBook: https://www.insiderfinancial.com/lp/youtube GET READY: The Stocks To Watch This Week! Disclosure: Insider Financial has not been compensated for this video. Insider Financial is not an investment advisor; this video does not provide investment advice. Always do your research, make your own investment decisions, or consult with your nearest financial advisor. This video is not a solicitation or recommendation to buy, sell, or hold securities. This video is our opinion, is meant for informational and educational purposes only, and does not provide investment advice. Past performance is not indicative of future performance. For more information, please read our full disclaimer: https://insiderfinancial.com/disclaimer/ S&p 500, Dow, Nasdaq, SPY ETF, QQQ ETF, quantum computing stocks, Spac stocks, AI stocks, Bitcoin, crypto, Bitcoin stocks, crypto stocks, short squeeze, short squeeze stocks, low float, low float stocks, lithium stocks, ev stocks, small caps, trading, otc stocks, otc stocks list, penny stocks, penny stocks list, NASDAQ penny stocks, NYSE stocks, NYSE penny stocks, biotech stocks #smallcapstocks #pennystocks #stockstowatch

The Adrenaline Zone
So Others May Live with Mike Romano

The Adrenaline Zone

Play Episode Listen Later Jun 27, 2024 42:45


While it's true that everyone has rough days at work, few people have ones where they find themselves dropped into the middle of a fishing boat mutiny, tasked with getting the bleeding Captain to safety. Today's guest is one of those precious few - and, in fact, that day wasn't even close to his most difficult assignment! 20-year U.S. Coast Guard veteran and Aviation Survival Technician (AST)/elite Rescue Swimmer, Mike Romano, joins Sandra and Sandy today to share his incredible journey from collegiate athlete to Search and Rescue specialist where he routinely performs daring rescues in the most perilous conditions. Highlighting the resilience, responsibility, and rigorous training required for his role, Mike discusses the intense physical and mental demands of his training, the crucial teamwork and communication needed during missions, and the importance of adapting to unpredictable situations. Mike's firsthand accounts of high-stakes rescues, specialized equipment, and valuable advice for aspiring ASTs underscore the bravery and dedication of Coast Guard rescue swimmers, and will undoubtedly leave listeners both amazed and inspired by their unwavering commitment to saving lives. Episode Highlights: Mike's journey to rescue swimming Rescue swimmer training Mike's team and its structure Planning ahead and improvising Transporting rescuees in the helicopter CRM and ORM training Mike's medical training His law enforcement role The equipment and technology he uses Some of Mike's more perilous experiences The feeling after a successful mission Contact with rescuees after the mission Dealing with the unpredictability of the job Mike's career rescue stats His advice for those considering entering the field Key Takeaways: "Don't have a backup plan. Have this be your one and only goal. Work hard. Just know as physically exhausted as you think you are, you can do more." "Coast Guard rescue swimmers are some of the most elite yet unsung heroes in our military." "They physically drain you as much as possible to make you try to think and just have that mental toughness." "When we get on scene, a lot of times it's very different. You've kind of got to be very flexible and roll with all the punches." "You just kind of put yourself in the mindset of 'so others may live' and stick with that motto." "The pridefulness of it, the, like, 'Hey, I did a great thing.' It's an incredible feeling to pull somebody out of their most difficult situation." Keep the adrenaline rush going at: Homepage: theadrenalinezone.com Instagram: https://www.instagram.com/theadrenalinezone/ X:  https://twitter.com/Adrenalinezonep TikTok: https://www.tiktok.com/@theadrenalinezone Mike's LinkedIn: https://www.linkedin.com/in/mrromano/

Insider Financial Talks Penny Stocks
Get Ready For A Major Short Squeeze!

Insider Financial Talks Penny Stocks

Play Episode Listen Later Jun 18, 2024 9:07


Insider Financial profiles Greenwave Technology Solutions Inc (NASDAQ: GWAV). To get our FREE reports and eBook: https://www.insiderfinancial.com/lp/youtube This video covers GWAV, ASTS, MBIO, ASNS, and DXF. Get Ready For A Major Short Squeeze! Disclosure: ONE22 MEDIA, LLC HAS BEEN COMPENSATED A FEE OF EIGHT THOUSAND USD BY A THIRD PARTY, SICA MEDIA, LLC FOR A ONE DAY GWAV PROFILE. O22 HAS PREVIOUSLY BEEN COMPENSATED A FEE OF TEN THOUSAND USD BY A THIRD PARTY, SICA MEDIA, LLC FOR A ONE DAY GWAV PROFILE. O22 HAS PREVIOUSLY BEEN COMPENSATED A FEE OF TEN THOUSAND USD BY A THIRD PARTY, SICA MEDIA, LLC FOR A ONE DAY GWAV PROFILE. Insider Financial is not an investment advisor; this video does not provide investment advice. Always do your research, make your own investment decisions, or consult with your nearest financial advisor. This video is not a solicitation or recommendation to buy, sell, or hold securities. This video is our opinion, is meant for informational and educational purposes only, and does not provide investment advice. Past performance is not indicative of future performance. For more information, please read our full disclaimer: https://insiderfinancial.com/disclaimer/ S&p 500, Dow, Nasdaq, SPY ETF, QQQ ETF, quantum computing stocks, Spac stocks, AI stocks, Bitcoin, crypto, Bitcoin stocks, crypto stocks, short squeeze, short squeeze stocks, low float, low float stocks, lithium stocks, ev stocks, small caps, trading, otc stocks, otc stocks list, penny stocks, penny stocks list, NASDAQ penny stocks, NYSE stocks, NYSE penny stocks, biotech stocks #smallcapstocks #pennystocks #shortsqueeze

Alternativa 3
Procesadores basados en mini cerebros humanos

Alternativa 3

Play Episode Listen Later Jun 14, 2024 18:02


La empresa FinalSpark ha desarrollado la tecnología para crear supercomputadoras con mini cerebros humanos creados a partir de material fetal.La noticia salió en las siguientes fuentes:1) MSN https://www.msn.com/es-mx/noticias/tecnologia/empresa-suiza-conecta-16-minicerebros-humanos-para-crear-un-ordenador-vivo/ar-BB1o2qST?ocid=msedgntp&pc=ASTS&cvid=2d1a6040fc8f4d51ac13c2c959abb719&ei=22 2) DW https://www.dw.com/es/empresa-suiza-conecta-16-minicerebros-humanos-para-crear-un-ordenador-vivo/a-69337219 --- Send in a voice message: https://podcasters.spotify.com/pod/show/a3misterio/message

Creativos radio
Procesadores basados en mini cerebros humanos

Creativos radio

Play Episode Listen Later Jun 13, 2024 18:02


La empresa FinalSpark ha desarrollado la tecnología para crear supercomputadoras con mini cerebros humanos creados a partir de material fetal.La noticia salió en las siguientes fuentes:1) MSN https://www.msn.com/es-mx/noticias/tecnologia/empresa-suiza-conecta-16-minicerebros-humanos-para-crear-un-ordenador-vivo/ar-BB1o2qST?ocid=msedgntp&pc=ASTS&cvid=2d1a6040fc8f4d51ac13c2c959abb719&ei=22 2) DW https://www.dw.com/es/empresa-suiza-conecta-16-minicerebros-humanos-para-crear-un-ordenador-vivo/a-69337219 --- Send in a voice message: https://podcasters.spotify.com/pod/show/creativos/message

Insider Financial Talks Penny Stocks
The #1 Low Float Nasdaq Small Cap For Monday!

Insider Financial Talks Penny Stocks

Play Episode Listen Later Jun 3, 2024 8:06


Insider Financial profiles Globalvend Holdings Ltd (NASDAQ: GVH). To get our full report on GVH: https://www.insiderfinancial.com/lp/youtube This video covers GVH, ASTS, AI, ONMD, KIND, WOOF, and BZFD. The #1 Low Float Nasdaq Small Cap For Monday! Disclosure: ONE22 MEDIA, LLC HAS BEEN COMPENSATED A FEE OF TEN THOUSAND USD BY A THIRD PARTY, SICA MEDIA, LLC FOR A ONE DAY GVH PROFILE. Insider Financial is not an investment advisor; this video does not provide investment advice. Always do your research, make your own investment decisions, or consult with your nearest financial advisor. This video is not a solicitation or recommendation to buy, sell, or hold securities. This video is our opinion, is meant for informational and educational purposes only, and does not provide investment advice. Past performance is not indicative of future performance. For more information, please read our full disclaimer: https://insiderfinancial.com/disclaimer/ S&p 500, Dow, Nasdaq, SPY ETF, QQQ ETF, quantum computing stocks, Spac stocks, AI stocks, Bitcoin, crypto, Bitcoin stocks, crypto stocks, short squeeze, short squeeze stocks, low float, low float stocks, lithium stocks, ev stocks, small caps, trading, otc stocks, otc stocks list, penny stocks, penny stocks list, NASDAQ penny stocks, NYSE stocks, NYSE penny stocks, biotech stocks #smallcapstocks #pennystocks #stockstowatch

Insider Financial Talks Penny Stocks
4 Small Cap Stocks To Have On Your Radar!

Insider Financial Talks Penny Stocks

Play Episode Listen Later May 30, 2024 8:58


Insider Financial recaps the day's small-cap action and covers the small caps on our radar screen. To get our FREE reports and eBook: https://www.insiderfinancial.com/lp/youtube This video covers ASTS, AI, ONMD, and KIND. 4 Small Cap Stocks To Have On Your Radar! Disclosure: Insider Financial has not been compensated for this video. Insider Financial is not an investment advisor; this video does not provide investment advice. Always do your research, make your own investment decisions, or consult with your nearest financial advisor. This video is not a solicitation or recommendation to buy, sell, or hold securities. This video is our opinion, is meant for informational and educational purposes only, and does not provide investment advice. Past performance is not indicative of future performance. For more information, please read our full disclaimer: https://insiderfinancial.com/disclaimer/ S&p 500, Dow, Nasdaq, SPY ETF, QQQ ETF, quantum computing stocks, Spac stocks, AI stocks, Bitcoin, crypto, Bitcoin stocks, crypto stocks, short squeeze, short squeeze stocks, low float, low float stocks, lithium stocks, ev stocks, small caps, trading, otc stocks, otc stocks list, penny stocks, penny stocks list, NASDAQ penny stocks, NYSE stocks, NYSE penny stocks, biotech stocks #smallcapstocks #pennystocks #stockstowatch

WALL STREET COLADA
Mayo 16: First Solar aparece tras una investigación comercial sobre las importaciones solares asiáticas.cLas emisiones de Microsoft aumentan en medio de la creciente demanda de IA. Disney señala recortes de gastos en marketing y televisión tradicional

WALL STREET COLADA

Play Episode Listen Later May 16, 2024 4:39


Noticias Económicas y Financieras Vladimir Putin aterrizó en Beijing para una visita de Estado de dos días, donde fue recibido por el líder chino Xi Jinping con una alfombra roja y una banda militar completa. El viaje se basará en su compromiso con la relación "sin límites" que firmaron en los Juegos Olímpicos de Invierno de 2022, justo antes de la invasión a gran escala de Ucrania. A medida que Rusia se va aislando de Occidente en el escenario mundial, ha tratado de impulsar el comercio en Oriente y otros lugares, ayudando a apuntalar su economía frente a las sanciones. ¿Creía que la Reserva Federal solo dependía de los datos? Adivina otra vez. Los operadores centrados en los datos celebraron con estilo después de que el índice de precios al consumidor de abril aumentara un 0.3% respecto a marzo, disminuyendo el ritmo del +0.4% observado en los tres meses anteriores. La cifra, que significó que la inflación todavía está muy por encima del nivel del 3% sobre una base anualizada, ayudó a impulsar los índices de Wall Street a nuevos máximos históricos, con el S&P 500 $SP500 cruzando los 5.300 por primera vez en la historia. Mientras tanto, las ventas minoristas se mantuvieron estables, mientras que la actividad empresarial regional se enfrió aún más, lo que sugiere que la Reserva Federal podría flexibilizar la política monetaria antes de lo esperado. Es la temporada 13F, en la que los fondos de cobertura con al menos $100M en activos bajo gestión revelan sus tenencias. La avalancha de presentaciones arroja luz sobre lo que compraron y vendieron durante el trimestre, pero los administradores de inversiones también pueden hacer solicitudes especiales a los reguladores para mantener algunas de sus participaciones confidenciales. Berkshire Hathaway $BRK.B, centrada en seguros, acaba de revelar una de esas posiciones, revelando una participación anterior de $6.7B en Chubb $CB, y los participantes del mercado hicieron subir las acciones un 8% AH el miércoles mientras algunos buscaban copiar las selecciones exitosas de Warren Buffett. Otros aspectos destacados del 13F incluyen presentaciones de Pershing Square de Bill Ackman, Scion de Michael Burry y Appaloosa de David Tepper. AT&T $T se está asociando con ASTS SpaceMobile $ASTS para llevar conectividad a Internet satelital a teléfonos celulares. La noticia hizo que $ASTS subiera un 36% en las operaciones previas a la comercialización esta mañana, y el acuerdo de red de banda ancha espacial durará hasta 2030. Otros operadores de telecomunicaciones también se han aventurado en el mercado. T-Mobile tiene un acuerdo similar con SpaceX $SPACE, mientras que Verizon $VZ se asoció anteriormente con el Proyecto Kuiper de Amazon $AMZN para soluciones de conectividad. Apple $AAPL también ofrece servicios de emergencia de satélite a teléfono móvil en sus iPhones desde 2022. $FSLR First Solar aparece tras una investigación comercial sobre las importaciones solares asiáticas. Las emisiones de Microsoft $MSFT aumentan en medio de la creciente demanda de IA. $DIS Disney señala recortes de gastos en marketing y televisión tradicional.

A Score To Settle
ASTS 055: Guest Neil S. Bulk, soundtrack album producer and editor-2023 in review

A Score To Settle

Play Episode Listen Later Feb 19, 2024 83:42


Welcome all listeners out there to the new year and also to the inaugural episode of 2024! To launch into this new year, in this episode I am accompanied once more by perennially popular soundtrack album producer and editor Neil S. Bulk, to continue our conversation in recapping his standout projects from the prior year, in this instance 2023. His work can be heard on album releases from the La La Land, Quartet and Varese Sarabande record labels. As always, I appreciate when Neil can spend time to share the details and experiences on these albums!   Below are the films and composers represented here, with time index for helpful reference:   Intro - 00:00:00 GORKY PARK (1983) (James Horner) - 00:02:36 DAD (1989) (James Horner) - 00:13:15 SNEAKERS (1992) (James Horner) - 00:20:01 THE MASK OF ZORRO (1998) (James Horner) - 00:26:01 MULAN (1998) (Dolby Atmos album releases, score by Jerry Goldsmith, songs by Matthew Wilder and David Zippel) - 00:38:12 LIVE AND LET DIE (1973) (music by George Martin, title song by Paul McCartney & Wings) - 00:45:34 OCTOPUSSY (1983) (music by John Barry, title song "All Time High" by Barry and Tim Rice) - 01:00:00   Stay safe out there, take care of yourself and each other!    Albums discussed now available at: La La Land Records Quartet Records   Connect with the podcast on Facebook and Twitter: www.facebook.com/ascoretosettle https://twitter.com/score2settlepod   Email the show at ascoretosettlepodcast@gmail.com   

Daily Stock Picks
Price targets for some solid movers like $SNOW and $PLTR - 12-18-23 Market Update

Daily Stock Picks

Play Episode Listen Later Dec 18, 2023 36:24


HIT THE 5 STARS ABOVE PLEASE  There are still TONS of opportunities in this market. BIG CHARTS IN THE NEWSLETTER TODAY  I sold out of some stocks like $CLF, $BAC and $TQQQ too soon, but I sold for a purpose. Make no mistake - this is a bull run. I think we continue this run so don't pay attention to the nay sayers.  Remember - Trendspider, Seeking Alpha and my paid newsletter all have FREE 7 day trials available.  TRENDSPIDER SALE - best offer available (limited time) Sign up at link ⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠https://trendspider.com?_go=gary93⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠ Email me at ⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠dailystockpick3@gmail.com⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠ I'll send you the welcome letter that includes all the algorithms, watchlists and scanners that you see me use each and every day. Get $50 off a year of Seeking Alpha.  ⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠https://www.sahg6dtr.com/2L9M597/R74QP/⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠ TESLA referral -Use my referral link to buy a Tesla and get up to $500 off and 3 months of Full Self-Driving Capability.  ⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠https://www.tesla.com/referral/gary82526⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠ Social Links and more - ⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠https://linktr.ee/dailystockpick ⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠ FREE NEWSLETTER WITH CHARTS - subscribe at ⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠dailystockpick.substack.com ⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠ SPONSORED BY VISIBLE - Check out this page: ⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠https://www.visible.com/get/?3P8FJPM⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠  $20 off your first month - only $5 for the first month Sign up for Webull and get free stocks like I did - ⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠ ⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠https://a.webull.com/gzxte9iTQnfaDYFDjM⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠ Get AT&T Fiber at your home - I have 1GB service ⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠https://www.att.com/referral/code/?ref=TVY-3964⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠ NOTES Nippon steel to buy $x for $55/share all cash - up 25%  This caused $CLF to skyrocket in that they will not buy $X now - therefore they don't have to spend money $adbe and figma shut down deal and $adbe will pay $1b breakup fee - I still think $adbe under $600 is a great price  Broken up because they didn't think they could get regulatory approval  A new indicator on Trendspider from the inventor of the bollinger bands Small Cap category stocks Fintech: $SOFI, $FOUR, $DLO, $MQ, $PGY Energy/Solar: $STEM, $ENVX, $FLNC, $EOSE, $ASPN Space: $RKLB, $ASTS, $PL Cloud: $CFLT, $DOCN, $ESTC, $PI SaaS: $PAYC, $GTLB, $MNDY, $HCP, $BRZE, $KVYO, $PATH, $S Consumer: $DUOL, $HIMS, $ONON, $LMND E-Commerce: $GLBE, $JMIA Semis: $INDI, $NVTS, $AEHR Biotech: $NTLA, $BEAM, $VERV, $PRME, $RXRX, $DNA, $VKTX Medtech: $TMDX, $SWAV, $PGNY, $NNOX, $INSP I'm currently updating my model for all my holdings & will share my 2026 target prices for each as the updates are completed -- here are my updated 2026 target prices for these five holdings

Smart Software with SmartLogic
Static Code Analysis in Elixir vs. Ruby with René Föhring & Marc-André Lafortune

Smart Software with SmartLogic

Play Episode Listen Later Dec 14, 2023 46:02


In this episode of Elixir Wizards, hosts Owen and Dan are joined by René Föhring, creator of Credo for Elixir, and Marc-André LaFortune, head maintainer of the RuboCop AST library for Ruby. They compare static code analysis in Ruby versus Elixir. The conversation explores the intricacies and challenges inherent in static code analysis across object-oriented and functional programming paradigms, highlighting the unique characteristics of both Ruby and Elixir. Key topics of discussion include the ways these tools can enhance coding styles and empower developers, the delicate balance between providing guidance and enforcing rules, and the evolving future of code analysis in these languages. Topics discussed in this episode: The differences and applications between static and dynamic analysis How Credo aims to offer flexible and educational guidance for Elixir developers The complexities of method identification in Ruby and its impact on static analysis Challenges posed by macros and dynamic code modification during compilation in Elixir Reducing false positives in code analysis tools to minimize developer frustration Promoting uniform coding practices through analysis tools The significance of using analysis tools with clear, specific objectives How coding standards can refine and improve coding styles over time Building analysis tools and checks through an understanding of Abstract Syntax Trees (ASTs) Potential advancements in the analysis of Phoenix templates and HTML in Elixir Contrasting approaches to managing code and comments in Elixir and Ruby ASTs The fine line between providing helpful guidance and imposing stylistic preferences Heuristics in static analysis highlight inconsistencies without mandating style The potential for more straightforward pattern matching in ASTs with future updates The importance of a gradual implementation of tool updates to maintain backward compatibility Creating tools that support and empower developers, rather than hinder them How static analysis contributes to cleaner, more maintainable codebases Potential future developments in the field of static code analysis Practical applications of using linters like Credo and RuboCop in software development Links mentioned in this episode: Credo https://github.com/rrrene/credo https://hexdocs.pm/credo/overview.html Dogma: A code style linter for Elixir https://github.com/lpil/dogma https://github.com/rubocop/rubocop RuboCop's AST extensions and NodePattern functionality https://github.com/rubocop/rubocop-ast https://github.com/whitequark/parser https://hex.pm/packages?search=credo&sort=recentdownloads https://github.com/doorgan/sourceror https://github.com/rrrene/credo/blob/master/lib/credo/check/readability/largenumbers.ex Special Guests: Marc-André Lafortune and René Föhring.

Bloomberg Surveillance
Bloomberg Surveillance: Mary Barra's Buyback Plan

Bloomberg Surveillance

Play Episode Listen Later Nov 29, 2023 43:34 Transcription Available


Mary Barra, GM CEO, discusses the company's announcement of its biggest-ever buyback plan, and says she expects 'strong adoption' of more affordable EVs. Thierry Wizman, Macquarie Global Interest Rates & Currencies Strategist, says the biggest risk right now is another sudden shock in the oil market. Scott Nuttall, Kohlberg Kravis Roberts Co-CEO, discusses his firm's acquisition of insurer Global Atlantic. Lara Rhame, FS Investments Chief US Economist, says the state of services in the economy could threaten the Fed's 2% inflation goal. Howard Marks, Oaktree Capital Co-Chairman & Co-Founder, reflects on the legendary life and career of Berkshire Hathaway's Charlie Munger. David Rubenstein, Carlyle Group Co-Founder, previews brand-new episodes of Bloomberg's "The David Rubenstein Show: Peer to Peer Conversations" featuring AIG CEO Peter Zaffino and Pershing Square CEO Bill Ackman. Get the Bloomberg Surveillance newsletter, delivered every weekday. Sign up now: https://www.bloomberg.com/account/newsletters/surveillance  Full Transcript: This is the Bloomberg Surveillance Podcast. I'm Tom Keene, along with Jonathan Ferrell and Lisa Abramowitz. Join us each day for insight from the best an economics, geopolitics, finance and investment. Subscribe to Bloomberg Surveillance on demand on Apple, Spotify and anywhere you get your podcasts, and always on Bloomberg dot Com, the Bloomberg Terminal, and the Bloomberg Business app. John Ferrell with Mary Burrow, I want to go through some of the numbers for our audience. Divid end up thirty three percent, biggest ever buyback plan ten billion dollars, forty billion dollar name yesterday. Just some context perspective there that is massive inquiring minds. Mary will want to know why have you decided to deliver a ten billion dollar buy back shortly after you've signed a labor contract that adds nine point three billion to expenses over its term. Well, as we looked at what was happening from a labor perspective, we had built and really the labor environment going into our negotiations, we had put conservative estimates into our plan. So although it was a little higher than what we expected, we believe that we have and our guidance for next year, we've already said that we'll be able to offset that completely with the plan that we already had of a two billion dollar cost out perspective. So we did the right thing to recognize our manufacturing team members who have done a great job and continue to build vehicles safely with high quality. And we also thought that we've got to look and make sure that we're balanced across all of our stakeholders, and our owners are very important. So we think this was a very balanced response when we look at what was done from a labor perspective and what we're doing as part of our capital allocation framework for our owners. Well, let's get into that. So shareholders are super happy. The name is up by almost eleven percent so far this morning. I wonder if you aw Wiz Mary, they didn't get the forty percent they wanted. They got twenty five plus cost of living adjustments and other things as well. Is the old things of this morning not something that concerns you. When I look at it, I think it's balanced. Again, we have very well compensated and you know, when you look at the suite of benefits that our represented team members have it's a very very appropriate package and frankly leading from an industry perspective broader than just the auto industry. So I think we did the right thing to recognize and reward the hard work of our manufacturing team members across the board. But also one of the things our manufacturing team members very much value is job security. And to have job security, you have to have a strong company and you have to look at all of your stakeholders. So what we did from a share buyback perspective for our owners is I think a very balanced response. As you know, this move this morning not just about the capital return program, also about cost cuts. We know you're looking to fully offset that labor contract the additional costs from it. Have you identified where you will cut where you need to cut? Yes, a lot of this was already underway. At the beginning of this year calendar year twenty twenty three, we announced it too, billion dollar cost reduction structural cost reduction between twenty three and the end of twenty four. That's well underway. As I said, we also comprehended that we would have increases in our labor cost as we looked at what the environment was and also wanting to reward our manufacturing employees. So you know there's work going across many aspects of the business and including making our products more efficient while still having the features, the functionality and beautiful designs that our customers want. So there's been a concentrated effort at the company to lower our fixed costs while enabling wonderful products and rewarding the team that is helping us deliver them. Clearly, these are additional costs. Are they forcing a change in execution or a change in strategy? Definitely not a change in strategy. Our strategy is clear. It's really based on four pillars of executing our strong internal combustion engine program vehicles, and we see we're performing very well in the market and we see that we're below the average incentives. I think that speaks to the strength of our internal combustion engine products. From an EVY perspective, we have confidence in the portfolio we have. We're a bit disappointed this year that we were constrained by the automation to build modules. So this is not something that is fundamentally an issue with Altium. It was more manufacturing automation issue that we're working and we'll be out of it by middle of next year and making improvement every quarter from that perspective. Also software and this year. Earlier this year, Mike Abbott joined our team who brings tremendous software expertise and he's built a very strong team that we'll share more about when we get to our investor day in March of next year. And then autonomy and when you look at autonomous vehicles and the importance of this technology and the talent that we have at Cruise. We are doing an independent review from an incident perspective but also overall from a safety perspective, and that will guide our path forward there. But we have a very capable team there. So the four pillars of our strategy have not changed at all. What has changed is our tactics, and our tactics are changing because of the world is changing. We never thought that the EV adoption would necessarily be a straight line. We've seen this in other markets, we're seeing it now in the US. But I think the thing that everybody has to remember, if the growth is slowing, it is still growing. And we think as we get more of the EV products we have this year into next, we think we're going to see is strong adoption for our products, and as the charging infrastructure continues to be more robust, we think that's going to drive adoption as well as having affordable evs. And that's where when you look at the Chevrolet Equinox as well as the Blazer and the Bolt that's coming, we're going to be having products in that range of affordable vehicles. That is going to be very important from EV adoption. Two things to unpack there. One is robot taxis. The other is EV. So let's deal with robot taxis. First, your counting expenses on crews substantially, just how committed are you there? I remember only a number of years ago we were talking about bringing in fifty billion in revenue by twenty thirty, and I get it. Married We'll understand that new tech is tough to develop, its to deploy. I think we're seeing that across a range of issues. But when do you know if it's the right time just to walk away from this well, I think the first of all, when you look at the progress that the Cruise team has made over the eight last eight years when General Motors acquired crews, I think it's substantial and we've already demonstrated that the cruise vehicle can perform at a level that's safer than a human driver. Let's not forget over forty thousand people on average lose their lives in traffic accidents in the US alone, and ninety percent of them are caused by human error. What we have learned with this incident is it's got to be significantly better than a human driver to drive adoption, and we have to do a much better job of working with the regulators. That's something that GM has a long reputation of working and being transparent with regulators at the local, state, and federal level. So I think as we do that and get the results of the independent review we're doing, that will guide us on our path forward. From an AV perspective, I'm always interested in how we know when we're wrong an exit size I think everyone has to go through, including myself married. But on this topic of EV's the slow down, what's behind it and why aren't we just learning that American consumers just don't want these cars? Well, I don't think it's that American consumers just don't want these cars. I think there still is limited availability when you look at the choice that customers had today, from an internal combustion vehicle perspective, I think a lot of the evs that are out right now are more expensive. You've got to look at where the sweet spot of the market is, and when you really want to win an EV's you've got to make sure that you are meeting the customer who only owns one vehicle. That's the bulk of people who buy vehicles today, new vehicles. They only own one vehicle or if they have two in their family. They're needed every day to earning their livelihoods. So we've got to get affordable. There's got to be a robust charging infrastructure. So again, the growth hasn't gone in reverse. It's slowing. I think we never expected. We thought it would be have some bumps along the way. I think that's what we're seeing right now. But I think when we have evs that are affordable, when people realize how much fun they are to drive and the performance and they're not giving anything up, and then that all important charging infrastructure, I think you know we're going to see them start to grow at a more rapid break again. And that's something that we'll continue to watch. And that's why we've changed some of our tactics to be responsive to where the customer is. You've been super generous with your time. Marriage. Just want to fit in one further question. Right now, you're a forty three billion dollar name. It's a big move this morning by ten percent. The forward multiple we're talking about four times expected earnings a little more than that after today's move. The stock has been dead money for the best part of a decade. You've been doing this a long time. I know you're super close with investors. What is it that you think is in this plan, this strategy that you have and a strategy that you've suggested this morning hasn't changed that's going to turn this around. Well, I think demonstrating our commitment to all of our stakeholders and the I think when you look at a ten billion dollar accelerated buyback program, it should signal because it means we have confidence in the cash generation ability of this company. We have confidence in our strategy across the four pillars that I covered. Yes, we had some challenges that this year with our ultim based evs that I think gabe investors some concern, But we're demonstrating the confidence that we and the board have that we're executing the strategy, and we're going to see growth, strong cash flow and strong margins. That's what we're going to deliver. That's captured in today's move nine percent. Mary, appreciate your time ready tell you thanks for catching up with us, Mary Parda of GM too. Wiseman joins us right now. Global Efects interest rate strategist much more than that at Macquarie, with lots and lots of experience on this. I love the first sentence of your note. Don't believe the hype You've been skeptical. Are you combining and dovetailing in with your low rate call a true slowdown in the economy? Yes? Absolutely. I think the narrative these days from Wall Street that I've seen in the last few weeks is that the reason the ten year field has been coming down is because we're in a disinflationary phase here in the economy, and there's going to be more disinflation to come in the US. I agree with that we are going to see disinflation in the US. It's going to come in rants, it's going to come in those eras of the CPI that are linked to consumer discretionary spending. But let's Also keep in mind one of the reasons we're going to see this disinflation is because the consumer is slowing. And there you have the don't believe the hype story, right, I don't believe the story is about record breaking Black Thursdays, by Friday sales and Cyber Monday sales. I think what I think these sales were on the back of heavy discounting. If you look at what some of these corporate execs had said prior to the start of the holiday spending season, they talked about having to cut prices. We'll all Marty even talked about deflation. So this is this is about disinflation. But let's keep in mind where this this inflation is going to come from. It's going to come from a weakening and pricing power at the consumer product and services level. It's going to be driven by slow down in agurate demand in the US. Also about how they're pank for this stuff Binapailita. You look at some of the numbers just booming. What do you take away from that? So my takeaway is from a macroeconomic perspective, what it does is it shifts spending to the early part of the season because normally you would have to save up a few more shekels as you approach your deadline on December twenty fifth to get those purchases done with by now, pay later. You don't need to do that, so it allows you to spend earlier, especially if you don't have access to revolving credit or credit cards. So I think that's another reason why we might have seen the so called record breaking days on last Friday and Monday. But again, if that's if it's the case that spending was only pulled forward, it doesn't mean that in aggregate for the whole of the season we're going to get that much that much hype. So far, people have viewed weaker US data as a positive. It's both been for a bond rally and a stock rally, And you're saying that we could see that bond rally continue quite significantly going forward. Will there be a diversion so in terms of risk asseesis or have to be to fuel a bond rally that goes much deeper than where we are now. Absolutely, to let the bond rally extend to say where the ten yure yield gets the three percent, I do think it has to be associated with a sell off at risk assets. I don't think you know, to get that kind of forceful move early in the bond market, you need to have some sort of dislocation in risk ASTs, some sort of drop in stocks, but over time, not necessarily. I think we can see a situation where, if this inflation continues slowly, you get the bond deal going down to where it was, let's say in the spring. Three and a half percent is not inconceivable without a stock market drop as long as it happens slowly and steadily. But well, corporations adapt. If I go back to bear Stearns, where you're held court, you had an entire security analysis team looking at these slowdowns, I don't buy the gloom. And the corporations, like General Motors, will adapt. I'm not sure what they're going to adapt to. Technological progress and changes. They can adapt to. Government policies that spur more investment in electric vehicles and clean energy technologies they can adapt to. But what do you do when you have excess inventory as the auto dealers do? Now? What do you do when the banks and the finance companies are cutting off credit to auto buyers? What do you do? Then you're not in control of that situation. You're in control of what's happening on your factory floor, You're in control of promotions, and maybe the way you adapt is by cutting prices. Let's face it, that's a way of adapting to to hold on to market share in the face of excess inventories, in the face of consumers slowing their demand. So yeah, they can adapt, but it's not necessarily in a way that is going to make their stock prices shoot up. You've identified a series of places in this economy where we could see lower prices retail, Walmart, talked about the auto makers, We're talking about GM, maybe lower prices, going to see that come through the pipeline soon. What's the biggest threat that still lingers for you? The biggest threat to that view that this disinflation continue through next year, it's supply shocks. I think the lesson of twenty twenty twenty two and early twenty twenty three was that we cannot control what happens in the rest of the world, especially as it pertains to the supply of oil, the supply of natural gas. So from my perspective, if we get another shock in that market, and by the way, it doesn't have to be because of a war, although in the past two years that has been the case. It could be simply that OPEC plus decides to curtail supply and we get a brand going back up to the low nineties as a result of that. Again, it's a question of how much they curtail supply by, but that's the biggest risk right now. The good news is that gasoline prices in the US have been falling for six weeks straight, I think, and steadily. I think that's going to show up in the CPI by the time we rolled around to seeing the November numbers and the December numbers. But the real reason that the CPI is going to still see disinflation is because rents rents in the new tenant market and the new lease market are coming down. That's going to put a lot of pressu ultimately on the yellows as measures of rents of primary residences. We're going to get that disinflation over the next few months. This is exactly what nil Data of Renaisance Macro is talking about tom the disinflation that's in the pipeline for rents for used cars, which is why based on what Walla said yesterday, it's not that much of an if for the likes of Terry, for the likes of Nil Duta, which is why they think you're going to get this conversation early next year about which you said interest rates. Yeah, there's no question there's a school of thought out there that this is not if. It's just simply when in the path to it. But I would dovetail it back to the labor economy, which we've barely touched on today, and we've got claims coming up here Thursday. And then you mentioned the late jobs report for November. I believe it's December eighth. But the basic idea here, John is when does a labor economy finally go? If you get a labor economy to go, you get there instantly. Claims two O nine, keep going back to two nine claims to eighty one economy in so many different ways over the last eighteen months or so. Terry, it's going to see it, Terry wi there at Macquarie longer going far away. There was KKR nineteen seventy six with history made in a style and a method. At KKR it was original. Shanale Basset gets an update from their co CEO Shanale, Good morning, Thank you, Tom. I'm standing by with the co CEO of KKR, Scott not All, and it is a really big day for KKR because they are doing this. They're buying the rest of Global Atlantic, a big insurance company that they don't already own. That is an all cash, two point seven billion dollar deal. But you're also creating a new unit at KKR that houses a core private equity business. If you had to give the market one way to understand what you're trying to do over there, what is it? First of all, Shanali, great to be with you, Thanks for having me. Really, what we're trying to do today is lay out the big three growth engines we have as a firm. So you're right, we are buying the minority stake in Global Atlantic we don't already own. We already owned sixty three percent of the companies, so we're buying the other thirty seven percent. Global Atlantic has been a great partnership for us. This is a transaction we did in twenty twenty one. The company is more than doubled since we announced the original deal in July of twenty twenty and it's been highly recurring a lot of growth earnings for KKR, so that's part one. We are also modifying our compensation ratios so our asset management business continues to scale. Our run rate management fees have doubled over the last three years. So the second thing we're doing is reducing the compensation ratioon fees, making an offsetting increase on kerry, and that will allow us to create more fee related earnings for our shareholder. You're changing the way you pay people, in effect, not the aggregate amount of compensation, but we're providing more of the fee related earnings to our shareholders, a little bit more carry to our people. The net of that is about neutral, but it will mean more of few related earnings overall. And then the third thing we're doing to your point, and this is relatively new for us, is we're creating a new segment for the firm. So we've historically reported as asset management and insurance. We are adding a new segment called Strategic Holdings. And what we will include in there are the dividends that we're receiving and will begin to receive in greater magnitude from our core private equity portfolio, which is a portfolio of great diversified recession resistant companies that we've been building up over the last several years. KKR, Apollo, Brookfield, they're all buying insurance companies. All of you are diversifying in pretty meaningful ways if you think about it. It's made private equity, by the dollars, by the assets under management, a smaller part of all of your businesses. What does this mean for the future of private equity? Private equity is still a growth business for us. We expect to continue to grow that part of KKR for a long time, both with respect to the flagship strategies, but also we've created a number of different growth strategies. The core private equity business is part of private equity that's now a thirty billion dollar franchise for us. So this isn't about an ore. This is about an and we see an ability to grow PE and all the other parts of KKR, and we've diversified meaningfully over the course of the last ten to fifteen years. We're just continuing our way down that path. Now, what does Global Atlantic exactly do. It seems like what it's really doing is giving you a whole balance sheet to be using to compete on you've mentioned capital markets is one place there's been a lot of competition from your industry to the banks. How does this help you now compete in a bigger way? Sure, Global Atlantic, as you know, it's largely issued annuities to individuals, and so if you think about what we do at KKRE, we work for pensioners, retirement retirees all around the world now family offices and individual investors as well. Global Atlantic distributes its products to that same kind of an audience. So historically we've worked for tens of millions of retirees. We still do, but now they're just in the form of policyholders. And that's our mission at KKR is to actually do a great job for all those people that we work for. We're not confused about who our bosses are. And so to the second part of your question on capital markets, what Global Atlantic allows us to do is create more synergy. We didn't necessarily see all this three years ago when we started our way down this path, but we think there's even more we can do to unlock value between the two companies, and capital markets is just one of those examples. Capital markets means you might be appearing on more and more deals lending a balance sheet to provide capital for big buyouts and other leverage loan deals. That's right, and we're already in that business. So the way that we built our capital markets business is by partnering with a Street, So we'll be alongside of the traditional banks and investment banks as we built that business. But what Global Atlantic brings us is an ability to expand the vision for that franchise. So there's more to do across asset based finance. As an example, more, when Global Atlantic does their large institutional block transactions, we can put some of the Global Atlantic balance sheet. GA has its own sidecard third party capital funds called IVY, so some can go into those third party funds, and then we can syndicate the excess through our capital markets forranchise as well. Just like we do private equity and infrastructure transactions, it applies to insurance deals as well. Something interesting about these deals is that you already have told investors this morning that this will add twenty percent to total operating earnings. You're boosting your targets into twenty twenty six for few related earnings. What are the real financial impacts? What can stockholders feel for KKR over the next two three years, well, I think what they'll be able to see is we are going to grow all three of our recurring forms of earnings in a much more meaningful way going forward, So a few related earnings will be higher. We continue to see a lot of organic growth in our businesses. Just by changing our compensation ratios, you get accretion on few related earnings, and we think by virtue of what we're renouncing today, we can do even more. With the Global Atlantic where we invest that portfolio, it's already gone from seventy two billion of AUM when we announced the transaction to one hundred and fifty eight billion over the last few years. We think we can do even more together. But they'll also see more insurance operating earnings, which we believe are highly recurring and fast growing. And then we'll have this third element, which will be the core private equity dividends showing up in the strategic holding segment. If you put those three things together, we think that'll be seventy percent or more of our overall pre tax income is those three forms of recurring earnings, and we're going to introduce them a new metric around that called operating earnings and we'll talk about that later today with our shareholders. Scott, we do have to leave it there. Thank you for joining us on a big day over at KKR. Tom shout on the basic Thank you so much with a gentleman from KKR in the future of what they do, joining us now, Lawyer. I'm chief US economist at FS Investments. On an eight point nine percent nominal GDP America, Laurie, what's so great about your economics is you've got it from the litmus paper of the FX market. How alone is the United States with an eight point nine percent nominal GDP. When Rishie Sonak is telling Francy Qua he's worried about austerity, I think we are still the growth continued to just surprise to the upside, and to me, it's remarkable the inconsistency between talking about rake cuts to you know, this idea that we're going to need rake cuts in the near term to support the economy, or the short term idea that we've seen the labor market slow. And really we do feel like we're an economy and the data would show that we're an economy firing on all cylinders. Government, business bending, consumption the only keys that's not really adding to it as residential construction. I would say that we are the standalone leader on growth. And what's so important here, Lisa, A nominal GDP topline, that's real GDP posts inflation is there's an assumption here by the Bill Ackmans of the world economists and not that it's going to plunge down to what six percent, five percent? Even that's a boom economy. And when you say it, they're talking the inflation component. And Laura, that's what I want you to weigh in on. How much does it matter if we see a slow down do we need to slow down if we continue to see the pace of disinflation that we've seen so far this year. I think there's two pieces to that argument. To me, the real and one place from probably off consensus is I am really reticent to think that we are going to get this magical slow down in inflation back to that two percent lane that we have had. On the good side, we have a lot of indications that just from some slower demand and from some of these resolutions and inventory that we're going to see lower goods prices. But I think we are really ignoring the big elephant in the room, which is services. We still have a hot labor market by my measure, we still have wage pressure that is way higher than prior to the pandemic, and the resting heart rate of inflation is still well above two percent. And on the services side really is the problem here. So I think we need to be careful about being very complacent about inflation coming down, and that really feeds into this non recessionary rate decline Goldilocks complacency that has taken hold of equity markets at this moment. In some ways, the Fed's wall are really kind of fed into that yesterday, which is a reason why maybe he gave Steams some of these market movements. He said, there is just no reason to say you would keep rates really high and inflation is back at target, how high is the threshold then to cut rates. If we do see the disinflation in the pipeline significant, it might not be long lasting because of some of these other issues, but we do see year over year comps come in with autoprice disinflation or outright deflation with rents coming in, with the fact that goods, as Walmart said, just prices are actually going down outright. I think the FED is good at looking around the corner on especially this rent issue. There's no doubt that rent is a very lagging indicator, but it's sticky for a reason. And all of the short term indicators that you know, six months ago were really pointing to rents coming down fast have now reversed. And I think something that's very important to me is the fact that rents are far below the cost that it is to buy a home per square foot. You are costing you a lot less to rent, and landlords are rational. They're going to see this, and they are going to over the next several quarters, you know, push rents higher again. So it's something that you just can't ignore in the core, even if you get the headline hitting two percent. I get nervous when the FED tries to micro manage the inflation process, Laura, and this with your overarching philosophy of summing all this together, are we beyond the pandemic? It sure doesn't feel like it to me. It feels like the stimulus is still pop and popping, popping. But from where you sit, are we beyond COVID Not? In the data, Tom, I think we're seeing this trampoline effect and the Q three GDP numbers are great example of that, and we had a big inventory, you know, push higher. We could very well get that. Still detracting from the fourth quarter, you're still getting some of these big swings in factors that are disguising what's going on underneath with demand which is still really red hot. So this is a big to me, you know, piece that we're looking at. For twenty twenty four, we start to see some move away from reliance on savings towards income. I think the irony is it could be a period of lower growth next year, but actually better sentiment about household economics as you see income finally catch up to the prior year and a half of inflation. Okay, I'm gonna pinion down it. Give me some twenty twenty four lower outlook numbers, real GDP. What do you think? Real GDP one point four and I think the tenure stays pretty high. I'm putting it at four percent for twenty twenty four. I mean, these are Lisa, these are huge slow down numbers. And then the question comes over immediately, what does non farm payrolls do? David Kelly, a JP Morgan would say goes negative well and This is really the ultimate question, Laura, do we get that kind of slow growth but high yield along with a full, fully employed America, along with job creation that continue to chugle all. I think that we look at the recessions that we've had in the two thousands, twy tens, even the nineteen nineties, we saw very little. If you look at nineteen ninety two thousand recessions, we saw very little drop and output, but a massive decline in labor in this I think upcoming year we're going to see a slower economy, but I think that companies continue to view labor as a scarce resource. I think the true Goldilocks is not going to be defined by output. It's going to be defined by the labor market, and we are going to see the I think the unemployment rates stay quite low. Lar. Thank you. We FS investment slower rhyme this morning there were a one point four percent called slower economy year. Howard Marks, chairman of oak Tree Capital Management, and I must point out author of not one, two, but three important books on investing of What to Do and just as importantly Howard What Not to Do. Howard on Charlie Munger getting the odds on your side. How did Charlie Munger get the odds on his side? He started off with a brilliant mind and a brilliant partner. He intensively studied the financials, thinking about the long term. He never tried to guess what a company or a stock would do in the short term. And he held for many years. You know, he was a great practitioner. Sit on your hands, and he did it flawlessly in the modern day, in the modern media, I remember reading those annual reports. How are years ago there was no financial media, there was no blogging internet. The short termism we're living it now. What is the lesson of Charlie Munger's long termism? Well, if you want to hit the long ball, you have to be very patient, and you know, when the stock moves up the first twenty percent, you can't start taking profits. Charlie and Warren have held things for decades. And the other thing is they were and Charlie always talked about this, you have very few moonshots. Charlie said within the last year that most of his wealth came from four decisions. And so you know what would have happened if he would have started trimming those four decisions early he certainly would not have accomplished what he did, and I think Warren would the same thing. Maybe the number four would be a little different with Warren, but you know, you know, Warren's famous for having said, put all your eggs in one basket. And I watched the basket really closely, and I think that it wasn't one basket. But the idea of concentration and patience coupled with good decisions makes for a great success. You know, a concentration and patience don't accomplish anything if you can't make above average investment decisions. But putting it all together is the formula for success. Howard, you wrote in some of your thoughts about Charlie Mungerth that he had very definite opinions, in particular regarding the investment management industry. He viewed the industry with considerable skepticism, and while a member of it, I found myself in agreement with him more often than not. What exactly are you talking about in particular? You know, I think both Charlie and Warren felt that our industry, relatively few members of it made substantial contributions to their clients wealth. Many more members that were well paid. He was always one who questions incentives. He says, you give me incentive, an incentive, I'll tell you the behavior. And and I think that, you know, I think that Warren and Charlie, if you're their operation, they, in fact Warren's ed and quotes, not a partnership, not a corporation of partnership. And they considered there there the people they manage money for their shareholders to be their partners. And they considered themselves to be working for their partners and not themselves, and their own wealth and success was a byproduct of working of doing great work for the partners. So you know, I like to put my sameself in the same boat. Those sentiments appeal to me greatly, and I've tried to follow that. How difficult has it been to sort of to adapt the strategy to different eras When you had conversations with Charlie Munger, there are questions around tech and how that changed the investment thesis. How did they think about the changing concept of what a wonderful company looked like and what fair value was. You know, you, on the one hand, you have to evolve with the times. On the other hand, you know they never went a full bore into the tech sector. You know, their famous are having made a lot of money with Apple, but you know, most tech the way they said it, they put it on the too hard pile. And if you have if you understand that your success will come from a small number of holdings, that means you don't need twenty thirty thirtyfty sixty. You don't need to exploit all the sceptors. You just have to find a few great ones. Of course, on the other hand, you know Tom said that we're you know, we're in a new era with all the communications we have. Part of what that means is that the world is a more interconnected, intelligent place. You know, back fifty years ago we used to be able to exploit things nobody else knew. Today there's very little information that doesn't make its waste speedily around the world. Howard to help us with one final question here to the management the future management of Berkshire Hathaway. They have a from COVID buildup of cash a four hundred and twelve billion out to half a trillion dollars five hundred and twenty five trillion. You and everybody else out there is living with explosive money market fund growth. You know the story in that forward here for Berkshire, Hathaway, what's the best use of there in our mounds of cash? You know, the people who run Berkshire today and will run it tomorrow understand the limitations of size. All things being equal, size makes it harder to outperform. They have the best probability of outperforming of any company their size, but their size will matter. And you know one of my professors at University of Chicago. I asked him afterwards, how would you manage a big fund? He'd say, I would index the cord and manage the hell out of the periphery. And I would imagine that at their size, they'll have to move in the direction of something like that, although they will not give up on outperformance. Howard Marx, thank you with oak Tree Capital Management. In remembrance of Charlie. I'm so pleased that we get to speak with Tipenstein, co founder and co chair of Carlisle Group, host of Peer to Peer Conversations on Bloomberg Television, because David is somebody who talks with all the executives across Wall Street, Main Street and beyond to understand how they're dealing with some of these transformative technologies of the moment, and David, I want to start there kind of where the similarities are in how some of these executives are thinking about the developments and artificial intelligence in a generative AI. Well, everybody wants to be an expert on AI and figure out how it's going to affect their company positively or negatively, but honestly, nobody really knows for sure yet how it will work. We're really inning one of artificial intelligence in terms of how major companies are going to use it or have it used against them. So everybody's trying to hire artificial experts or get people into their firm who can help them assess whether artificial intelligence is going to be useful to them or helpful to them, And nobody really knows yet, So I can't say anybody is certain how it's going to impact their business yet. David, mister Zevino stealed Marsh mcclennan and others, and then Nannie goes to AIG where different than other executives, he has to deal with disaster. What did you learn about how he handles the unexpected? Well, insurance is about dealing with the unexpected, really, and so AIG became the largest insurance company in the world for many, many years, and as a result of that, it had enormous tentacles throughout the entire financial complex. It clearly extended itself too much, didn't anticipate problems that arose, particularly in the mortgage area, and as a result had to be bailed out by the US government to tune of about one hundred and eighty billion dollars. Now that money's been paid back with interest. But AIG is no longer the biggest insurance company in the world, and it doesn't have quite the tentacles around the world that it once did, but still a very profitable company. David and Newsmaker yesterday. This is what Rubinstein does. He's steering the thunder from journalist David Rubinstein with Bill Ackman yesterday and the track that this nation will take. What did you learn from mister Rackman, David Rwinstein. Well, Bill is a very impressive person who obviously is outspoken, has been outspoken on many issues over many years. Recently has become quite visible in what he's been saying about Harvard. But he said in the interview which will air not too long from now that he's made a new bet. He's made a number of macro bets that have turned out to be extremely positive. One of them, he made it over one hundred times his money on a bet that he made a number of years ago in the time of COVID. Now he's made a bet that interest rates will be cut sooner by the Fed than is otherwise expected. And if that bet is successful, I guess he'll make a fair amount of money. But that's the big issue that many people are grappling with. Will the Fed decide and it needs to lower interest rates before the political season starts, let's say, in the summer or the fall of next year. Dave, excuse me, go ahead, Lisa, please my fault. David, is it surprising to you that a big hedge fund is focused on making big bets on treasuries right now? Well, many hedge funds people are doing that. Honestly, he has not done the so called treasury trade that others have done, where he's buying treasuries and shorting treasury futures. He hasn't done that. This is basically a bet that the Fed will succumb to some pressure to lower interest rates before too long. Now, the conventional wisdom in Wall Street is that the Fed will lower interest rates at some point during their first or second quarter, more likely the second quarter. I think his bet is it'll probably do it sooner than the conventional wisdom. And I have said publicly before, and I still think it's the case that the Fed will get in trouble if it lowers interest rates around the political season, because the Republicans will say, well, you're helping Joe Biden by lowering interest rates if you do so over the summer or in the early fall. So the Fed is going to lower interest rates, probably to avoid political criticism. It don't have to do it sooner than later. David, you mentioned mister Ackman in Harvard in the Horror of the Eastern Mediterrane. I want to go to your Duke University where they have a bridge. Folks. There's an old bridge called the Free Expression Bridge. And to make a long story short, they had to paint over a pro Palestinian tone as well. David, I want you to talk to the great and good right now about how those of means and success should deal with their shock at our American universities. Well, the American university system is still the envy of the world, and our private universities are really the places that people from all over the world want to attend. There's been a shock that many people didn't realize how strong the anti Israel feeling has been in some campuses, and the result of that has been outraged by some alums. Some universities have handled this better than other universities. I am the chairman of the board of the University of Chicago, and we have a tradition of not issuing statements on political matters or outside matters, and we have an issue one in this case. But in many cases other universities have not had that policy, and they've got in trouble for issuing statements that don't please one side or the other. It's a difficult way to walk his fine line, and I don't know that anybody has figured it out properly or correctly. David All glorious day for Bloomberg Surveillance with Doug cass and Howard Marks with us and membrance of Charlie Munger. Give us your thoughts on the hugely successful experiment that was Berkshire Hathaway. For those who don't know. Charlie Munger was from Warren Buffett's hometown of Omaha. He moved to Los Angeles and later reconnected with Warren Buffett, who hadn't really known before, but he had worked for Warren Buffet's grandfather at one point in a store. Charlie Munger was had outspoken, very very smart, a lawyer who transitioned from being a lawyer to being an investor, and his track record early on was actually better than Warren Buffett's in some respects. They teamed up became an incredible team of people who were mostly known to the public through their annual meetings where Warren Buffett and Charlie Munger would answer questions for six hours on end. And Charlie Munger was quite well known for his I would say, dismissive ideas of some other people's thoughts about investing. He was a very fundamentalist kind of investor and he transformed Warren Buffett. Warren Buffett was taught to buy things very cheap, and buy things cheap you can always make money. It was Charlie Munger's view that you should buy good companies. Maybe you pay a reasonable price for it, but buying good companies is better than buying cheap companies which may not be that good. And Warren Buffett gives a lot of credit credit to Charlie Munger for having transformed his views on the investment world. David, thank you for joining us today with us remember, and so Charlie Munger and of course with your excellence. Look for a conversation with Peter Zefino. Peer to peer conversations hugely anticipated in the next ten days. A conversation with Bill Eckman that move I would suggest move Markets. Subscribe to the Bloomberg Surveillance podcast on Apple, Spotify and anywhere else you get your podcasts. Listen live every weekday starting at seven am Easter. I'm Bloomberg dot Com, the iHeartRadio app tune In, and the Bloomberg Business app. You can watch us live on Bloomberg Television and always I'm the Bloomberg Terminal. Thanks for listening. I'm Tom Keen, and this is BloombergSee omnystudio.com/listener for privacy information.

A Score To Settle
ASTS 054: Now Playing... ”Barbie”, ”Oppenheimer”, ”Tetris”, ”The Marvels” and more!

A Score To Settle

Play Episode Listen Later Nov 20, 2023 95:34


Welcome back, everyone! To close out 2023, I'm concluding with an episode of the Now Playing sub-series of the podcast to spotlight notable film scores throughout the calendar year. This year provided some surprise blockbusters, such as BARBIE and OPPENHEIMER, along with new entries from major franchises like INDIANA JONES, CREED and THE FAST & THE FURIOUS - with memorable music from many. Enjoy music from a cavalcade of composers - John Williams, Lorne Balfe, Christophe Beck and Hans Zimmer, among others!   Below are the films and composers represented here, with time index for helpful reference.   Title playtime index: ANT-MAN AND THE WASP: QUANTUMANIA (Christophe Beck) - 00:01:37 SHAZAM: FURY OF THE GODS (Christophe Beck) - 00:06:12 CREED 3 (Joseph Shirley) - 00:10:09 TETRIS (Lorne Balfe) - 00:17:29 DUNGEONS & DRAGONS: HONOUR AMONG THIEVES (Lorne Balfe) - 00:24:06 THE SUPER MARIO BROS MOVIE (Brian Tyler/Koji Kondo) - 00:34:09 FAST X (Brian Tyler) - 00:38:24 INDIANA JONES AND THE DIAL OF DESTINY (John Williams) - 00:42:33 BARBIE (Mark Ronson and Andrew Wyatt, "What Was I Made For?" by Billie Eilish) - 00:53:00 OPPENHEIMER (Ludwig Göransson) - 01:04:02 THE CREATOR (Hans Zimmer) - 01:10:50 THE MARVELS (Laura Karpman) - 01:19:01   Stay safe out there, take care of yourself and each other!    Connect with the podcast on Facebook and Twitter: www.facebook.com/ascoretosettle https://twitter.com/score2settlepod     Email the show at ascoretosettlepodcast@gmail.com  

Planet 76
Sixers beat Hawks in Atlanta

Planet 76

Play Episode Listen Later Nov 18, 2023 16:35


- Sixers right the ship in Atlanta after 2 straight losses at home - Tobias Harris scores 29 and collects 10 rebounds - Joel Embiid finishes with 32 pts 8 Asts 7 Rebs - Danuel House Jr. scores 14 off the bench - Checking in on the In-Season Tournament standings - Preview of upcoming schedule

Knicks Film School
KFS POD | PART 1 - 2023-24 Knicks Season Preview - The Return of Claudio Casino!

Knicks Film School

Play Episode Listen Later Oct 9, 2023 48:52


In part 1 of 2 of this episode, Jon & Jeremy are back together again just in time for actual basketball games to return! To preview the upcoming Knicks season, they take a trip back to Claudio Casino and place their overs & unders bets for the upcoming year! TOPICS INCLUDE: How many PPG will Jalen Brunson average this season? How many total PTS, REBS & ASTS per game will Julius Randle average this season? How many total PTS, REBS & ASTS per game will RJ Barrett average this season? How many total PTS, REBS & ASTS will Immanuel Quickley average per game this season? How many total PTS, REBS & ASTS will Immanuel Quickley average per 36 this season? How many games will Josh Hart start this season? Watch the video version of this podcast on our YouTube channel! FOLLOW MACRI - @JCMacriNBA FOLLOW JEREMY - @TheCohencidence FOLLOW GMAC - @AndrewJClaudio_ BUY MR. COHEN'S BOOK - How to Survive a Killer Musical: Agony and Ecstasy on the Road to Broadway Learn more about your ad choices. Visit podcastchoices.com/adchoices

A Score To Settle
ASTS 053: TV Goes To The Movies - ”The Transformers”

A Score To Settle

Play Episode Listen Later Aug 10, 2023 67:16


Hello and welcome back to the podcast! In this episode, prepare to be transformed as I continue my mini-series entitled “TV Goes To The Movies” and now explore the music for THE TRANSFORMERS franchise. As before, my focus is musically what was or was not carried over from the television episodes of a particular series to its respective theatrical feature, such as the main TV theme or scoring style.   During its near 40 year history, from the original 1984 syndicated cartoon series, to the animated and live action movies, the Japanese-only series and more, music for the THE TRANSFORMERS has been remarkably varied. The vocal and score tracks have often reflected current or trendy musical approaches, leading to elements of lush symphonic strains, synth pop, hard rock and jazzy funk all being heard in various incarnations. Now, hold on to your crankshafts and let's transform and roll out!    Title playtime index: Intro - 00:00:00 THE TRANSFORMERS (US, 1984 cartoon series, theme by Anne Bryant & Ford Kinder, score by Johnny Douglas and Robert J. Walsh) - 00:06:17 TRANSFORMERS: THE MOVIE (US, 1986 animated theatrical film, songs by Stan Bush, Lion & Spectre General, score by Vince DiCola) - 00:16:45 THE TRANSFORMERS: HEADMASTERS (1987), TRANSFORMERS: SUPER-GOD MASTERFORCE (1988) and TRANSFORMERS: VICTORY (1989) (Japan, songs & score by Ishida Katsunori, Toshiya Igarashi, Michiaki Watanabe) - 00:31:45 TRANSFORMERS (2007), TRANSFORMERS: DARK OF THE MOON (2011), BUMBLEBEE (2018) and TRANSFORMERS: RISE OF THE BEASTS (2023) (US, live action theatrical films, song "What I've Done" by Linkin Park, scores by Steve Jablonsky, Dario Marianelli and Jongnic Bontemps) - 00:38:18*   *This segment also contains an excerpt from BATMAN BEGINS (2005), composed by Hans Zimmer and James Newtown Howard   Additional tracks heard but not referenced -  "Calling You", Theme from TRANSFORMERS: SUPERLINK (Japan, 2004), by Takayoshi Tanimoto "Time Limit", from TRANSFORMERS: LEGEND OF THE MICRONS (Japan, 2002), composed by Hayato Matsuo   Stay safe out there, take care of yourself and each other!    Connect with the podcast on Facebook and Twitter: www.facebook.com/ascoretosettle https://twitter.com/score2settlepod   Email the show at ascoretosettlepodcast@gmail.com  

Ratgeber
Abgestorbene Äste – wie zurückschneiden?

Ratgeber

Play Episode Listen Later Jun 23, 2023 5:53


Der Pilzbefall mit Monilia hat zwei typische Schadbilder: Zum einen sind es abgestorbene Zweige (Spitzendürre) im Frühsommer und zum anderen sind es braune, faulende Früchte (Fruchtmumien) zur Erntezeit. Werden die Fruchtmumien nicht abgelesen, stecken ihre Sporen im folgenden Jahr die Blüten an, der Pilz breitet sich in die Äste aus und diese dorren von der Spitze her ein. Um den Befall effektiv zu mindern, muss diese Infektionskette unterbrochen werden: * sämtliche dürren Äste bis ins gesunde Holz am Stamm oder an einer Verzweigung zurückschneiden *  Gartenschere und Astsäge mit Alkohol desinfizieren um eine Neuansteckung zu verhindern * sämtliche Fruchtmumien am Baum und am Boden entfernen

Latent Space: The AI Engineer Podcast — CodeGen, Agents, Computer Vision, Data Science, AI UX and all things Software 3.0
Debugging the Internet with AI agents – with Itamar Friedman of Codium AI and AutoGPT

Latent Space: The AI Engineer Podcast — CodeGen, Agents, Computer Vision, Data Science, AI UX and all things Software 3.0

Play Episode Listen Later May 25, 2023 62:36


We are hosting the AI World's Fair in San Francisco on June 8th! You can RSVP here. Come meet fellow builders, see amazing AI tech showcases at different booths around the venue, all mixed with elements of traditional fairs: live music, drinks, games, and food! We are also at Amplitude's AI x Product Hackathon and are hosting our first joint Latent Space + Practical AI Podcast Listener Meetup next month!We are honored by the rave reviews for our last episode with MosaicML! They are also welcome on Apple Podcasts and Twitter/HN/LinkedIn/Mastodon etc!We recently spent a wonderful week with Itamar Friedman, visiting all the way from Tel Aviv in Israel: * We first recorded a podcast (releasing with this newsletter) covering Codium AI, the hot new VSCode/Jetbrains IDE extension focused on test generation for Python and JS/TS, with plans for a Code Integrity Agent. * Then we attended Agent Weekend, where the founders of multiple AI/agent projects got together with a presentation from Toran Bruce Richards on Auto-GPT's roadmap and then from Itamar on Codium's roadmap* Then some of us stayed to take part in the NextGen Hackathon and won first place with the new AI Maintainer project.So… that makes it really hard to recap everything for you. But we'll try!Podcast: Codium: Code Integrity with Zero BugsWhen it launched in 2021, there was a lot of skepticism around Github Copilot. Fast forward to 2023, and 40% of all code is checked in unmodified from Copilot. Codium burst on the scene this year, emerging from stealth with an $11m seed, their own foundation model (TestGPT-1) and a vision to revolutionize coding by 2025.You might have heard of "DRY” programming (Don't Repeat Yourself), which aims to replace repetition with abstraction. Itamar came on the pod to discuss their “extreme DRY” vision: if you already spent time writing a spec, why repeat yourself by writing the code for it? If the spec is thorough enough, automated agents could write the whole thing for you.Live Demo Video SectionThis is referenced in the podcast about 6 minutes in.Timestamps, show notes, and transcript are below the fold. We would really appreciate if you shared our pod with friends on Twitter, LinkedIn, Mastodon, Bluesky, or your social media poison of choice!Auto-GPT: A Roadmap To The Future of WorkMaking his first public appearance, Toran (perhaps better known as @SigGravitas on GitHub) presented at Agents Weekend:Lightly edited notes for those who want a summary of the talk:* What is AutoGPT?AutoGPT is an Al agent that utilizes a Large Language Model to drive its actions and decisions. It can be best described as a user sitting at a computer, planning and interacting with the system based on its goals. Unlike traditional LLM applications, AutoGPT does not require repeated prompting by a human. Instead, it generates its own 'thoughts', criticizes its own strategy and decides what next actions to take.* AutoGPT was released on GitHub in March 2023, and went viral on April 1 with a video showing automatic code generation. 2 months later it has 132k+ stars, is the 29th highest ranked open-source project of all-time, a thriving community of 37.5k+ Discord members, 1M+ downloads.* What's next for AutoGPT? The initial release required users to know how to build and run a codebase. They recently announced plans for a web/desktop UI and mobile app to enable nontechnical/everyday users to use AutoGPT. They are also working on an extensible plugin ecosystem called the Abilities Hub also targeted at nontechnical users.* Improving Efficacy. AutoGPT has many well documented cases where it trips up. Getting stuck in loops, using instead of actual content incommands, and making obvious mistakes like execute_code("writea cookbook"'. The plan is a new design called Challenge Driven Development - Challenges are goal-orientated tasks or problems thatAuto-GPT has difficulty solving or has not yet been able to accomplish. These may include improving specific functionalities, enhancing the model's understanding of specific domains, or even developing new features that the current version of Auto-GPT lacks. (AI Maintainer was born out of one such challenge). Itamar compared this with Software 1.0 (Test Driven Development), and Software 2.0 (Dataset Driven Development).* Self-Improvement. Auto-GPT will analyze its own codebase and contribute to its own improvement. AI Safety (aka not-kill-everyone-ists) people like Connor Leahy might freak out at this, but for what it's worth we were pleasantly surprised to learn that Itamar and many other folks on the Auto-GPT team are equally concerned and mindful about x-risk as well.The overwhelming theme of Auto-GPT's roadmap was accessibility - making AI Agents usable by all instead of the few.Podcast Timestamps* [00:00:00] Introductions* [00:01:30] Itamar's background and previous startups* [00:03:30] Vision for Codium AI: reaching “zero bugs”* [00:06:00] Demo of Codium AI and how it works* [00:15:30] Building on VS Code vs JetBrains* [00:22:30] Future of software development and the role of developers* [00:27:00] The vision of integrating natural language, testing, and code* [00:30:00] Benchmarking AI models and choosing the right models for different tasks* [00:39:00] Codium AI spec generation and editing* [00:43:30] Reconciling differences in languages between specs, tests, and code* [00:52:30] The Israeli tech scene and startup culture* [01:03:00] Lightning RoundShow Notes* Codium AI* Visualead* AutoGPT* StarCoder* TDD (Test-Driven Development)* AST (Abstract Syntax Tree)* LangChain* ICON* AI21TranscriptAlessio: [00:00:00] Hey everyone. Welcome to the Latent Space podcast. This is Alessio, Partner and CTO-in-Residence at Decibel Partners. I'm joined by my co-host, Swyx, writer and editor of Latent Space.Swyx: Today we have a special guest, Tamar Friedman, all the way from Tel Aviv, CEO and co-founder of Codium AI. Welcome.Itamar: Hey, great being here. Thank you for inviting me.Swyx: You like the studio? It's nice, right?Itamar: Yeah, they're awesome.Swyx: So I'm gonna introduce your background a little bit and then we'll learn a bit more about who you are. So you graduated from Teknion Israel Institute of Technology's kind of like the MIT of of Israel. You did a BS in CS, and then you also did a Master's in Computer Vision, which is kind of relevant.You had other startups before this, but your sort of claim to fame is Visualead, which you started in 2011 and got acquired by Alibaba Group You showed me your website, which is the sort of QR codes with different forms of visibility. And in China that's a huge, huge deal. It's starting to become a bigger deal in the west. My favorite anecdote that you told me was something about how much sales use you saved or something. I forget what the number was.Itamar: Generally speaking, like there's a lot of peer-to-peer transactions going on, like payments and, and China with QR codes. So basically if for example 5% of the scanning does not work and with our scanner we [00:01:30] reduce it to 4%, that's a lot of money. Could be tens of millions of dollars a day.Swyx: And at the scale of Alibaba, it serves all of China. It's crazy. You did that for seven years and you're in Alibaba until 2021 when you took some time off and then hooked up with Debbie, who you've known for 25 years, to start Codium AI and you just raised your $11 million seed rounds with TlB Partners and Vine. Congrats. Should we go right into Codium? What is Codium?Itamar: So we are an AI coding assistant / agent to help developers reaching zero bugs. We don't do that today. Right now, we help to reduce the amount of bugs. Actually you can see people commenting on our marketplace page saying that they found bugs with our tool, and that's like our premise. Our vision is like for Tesla zero emission or something like that, for us it's zero bugs.We started with building an IDE extension either in VS Code or in JetBrains. And that actually works alongside the main panel where you write your code and I can show later what we do is analyze the code, whether you started writing it or you completed it.Like you can go both TDD (Test-Driven Development) or classical coding. And we offer analysis, tests, whether they pass or not, we further self debug [00:03:00] them and make suggestions eventually helping to improve the code quality specifically on code logic testing.Alessio: How did you get there? Obviously it's a great idea. Like, what was the idea, maze? How did you get here?Itamar: I'll go back long. So, yes I was two and a half times a CTO, VC backed startup CTO where we talked about the last one that I sold to Alibaba. But basically I'm like, it's weird to say by 20 years already of R&D manager, I'm not like the best programmer because like you mentioned, I'm coming more from the machine learning / computer vision side, one, one of the main application, but a lot of optimization. So I'm not necessarily the best coder, but I am like 20 year R&D manager. And I found that verifying code logic is very hard thing. And one of the thing that really makes it difficult to increase the development velocity.So you have tools related to checking performance.You have tools for vulnerabilities and security, Israelis are really good at that. But do you have a tool that actually helps you test code logic? I think what we have like dozens or hundreds, even thousands that help you on the end to end, maybe on the microservice integration system. But when you talk about code level, there isn't anything.So that was the pain I always had, especially when I did have tools for that, for the hardware. Like I worked in Mellanox to be sold to Nvidia as a student, and we had formal tools, et cetera. [00:04:30] So that's one part.The second thing is that after being sold to Alibaba, the team and I were quite a big team that worked on machine learning, large language model, et cetera, building developer tools relate with, with LLMs throughout the golden years of. 2017 to 2021, 2022. And we saw how powerful they became.So basically, if I frame it this way, because we develop it for so many use cases, we saw that if you're able to take a problem put a framework of a language around it, whether it's analyzing browsing behavior, or DNA, or etc, if you can put a framework off a language, then LLMs take you really far.And then I thought this problem that I have with code logic testing is basically a combination of a few languages: natural language, specification language, technical language. Even visual language to some extent. And then I quit Alibaba and took a bit of time to maybe wrap things around and rest a bit after 20 years of startup and corporate and joined with my partner Dedy Kredo who was my ever first employee.And that's how we like, came to this idea.Alessio: The idea has obviously been around and most people have done AST analysis, kinda like an abstract syntax tree, but it's kind of hard to get there with just that. But I think these models now are getting good enough where you can mix that and also traditional logical reasoning.Itamar: Exactly.Alessio: Maybe talk a little bit more about the technical implementation of it. You mentioned the agent [00:06:00] part. You mentioned some of the model part, like what happens behind the scenes when Codium gets in your code base?Itamar: First of all, I wanna mention I think you're really accurate.If you try to take like a large language model as is and try to ask it, can you like, analyze, test the code, etc, it'll not work so good. By itself it's not good enough on the other side, like all the traditional techniques we already started to invent since the Greek times. You know, logical stuff, you mentioned ASTs, but there's also dynamic code analysis, mutation testing, etc. There's a lot of the techniques out there, but they have inefficiencies.And a lot of those inefficiencies are actually matching with AI capabilities. Let me give you one example. Let's say you wanna do fuzzy testing or mutation testing.Mutation testing means that you either mutate the test, like the input of the test, the code of the test, etc or you mutate the code in order to check how good is your test suite.For example, if I mutate some equation in the application code and the test finds a bug and it does that at a really high rate, like out of 100 mutation, I [00:07:30] find all of the 100 problems in the test. It's probably a very strong test suite.Now the problem is that there's so many options for what to mutate in the data, in the test. And this is where, for example, AI could help, like pointing out where's the best thing that you can mutate. Actually, I think it's a very good use case. Why? Because even if AI is not 100% accurate, even if it's 80% accurate, it could really take you quite far rather just randomly selecting things.So if I wrap up, just go back high level. I think LLM by themselves cannot really do the job of verifying code logic and and neither can the traditional ones, so you need to merge them. But then one more thing before maybe you tell me where to double click. I think with code logic there's also a philosophy question here.Logic different from performance or quality. If I did a three for in loop, like I loop three things and I can fold them with some vector like in Python or something like that. We need to get into the mind of the developer. What was the intention? Like what is the bad code? Not what is the code logic that doesn't work. It's not according to the specification. So I think like one more thing that AI could really help is help to match, like if there is some natural language description of the code, we can match it. Or if there's missing information in natural language that needs [00:09:00] to be asked for the AI could help asking the user.It's not like a closed solution. Rather open and leaving the developer as the lead. Just like moving the developer from, from being the coder to actually being like a pilot that that clicks button and say, ah, this is what I meant, or this is the fix, rather actually writing all the code.Alessio: That makes sense. I think I talked about it on the podcast before, but like the switch from syntax to like semantics, like developers used to be focused on the syntax and not the meaning of what they're writing. So now you have the models that are really good at the syntax and you as a human are supposed to be really good at the semantics of what you're trying to build.How does it practically work? So I'm a software developer, I want to use Codium, like how do I start and then like, how do you make that happen in the, in the background?Itamar: So, like I said, Codium right now is an IDE extension. For example, I'm showing VS code. And if you just install it, like you'll have a few access points to start Codium AI, whether this sidebar or above every component or class that we think is very good to check with Codium.You'll have this small button. There's other way you can mark specific code and right click and run code. But this one is my favorite because we actually choose above which components we suggest to use code. So once I click it code, I starts analyzing this class. But not only this class, but almost everything that is [00:10:30] being used by the call center class.But all and what's call center is, is calling. And so we do like a static code analysis, et cetera. What, what we talked about. And then Codium provides with code analysis. It's right now static, like you can't change. It can edit it, and maybe later we'll talk about it. This is what we call the specification and we're going to make it editable so you can add additional behaviors and then create accordingly, test that will not pass, and then the code will, will change accordingly. So that's one entrance point, like via natural language description. That's one of the things that we're working on right now. What I'm showing you by the way, could be downloaded as is. It's what we have in production.The second thing that we show here is like a full test suite. There are six tests by default but you can just generate more almost as much as you want every time. We'll try to cover something else, like a happy pass edge case et cetera. You can talk with specific tests, okay? Like you can suggest I want this in Spanish or give a few languages, or I want much more employees.I didn't go over what's a call center, but basically it manages like call center. So you can imagine, I can a ask to make it more rigorous, etc, but I don't wanna complicate so I'm keeping it as is.I wanna show you the next one, which is run all test. First, we verify that you're okay, we're gonna run it. I don't know, maybe we are connected to the environment that is currently [00:12:00] configured in the IDE. I don't know if it's production for some reason, or I don't know what. Then we're making sure that you're aware we're gonna run the code that and then once we run, we show if it pass or fail.I hope that we'll have one fail. But I'm not sure it's that interesting. So I'll go like to another example soon, but, but just to show you what's going on here, that we actually give an example of what's a problem. We give the log of the error and then you can do whatever you want.You can fix it by yourself, or you can click reflect and fix, and what's going on right now is a bit a longer process where we do like chain of thought or reflect and fix. And we can suggest a solution. You can run it and in this case it passes. Just an example, this is a very simple example.Maybe later I'll show you a bug. I think I'll do that and I'll show you a bug and how we recognize actually the test. It's not a problem in the test, it's a problem in the code and then suggest you fix that instead of the code. I think you see where I'm getting at.The other thing is that there are a few code suggestion, and there could be a dozen of, of types that could be related to performance modularity or I see this case there is a maintainability.There could also be vulnerability or best practices or even suggestion for bugs. Like if we noticed, if we think one of the tests, for example, is failing because of a bug. So just code presented in the code suggestion. Probably you can choose a few, for example, if you like, and then prepare a code change like I didn't show you which exactly.We're making a diff now that you can apply on your code. So basically what, what we're seeing here is that [00:13:30] there are three main tabs, the code, the test and the code analysis. Let's call spec.And then there's a fourth tab, which is a code suggestion, if you wanna look at analytics, etc. Mm-hmm. Right now code okay. This is the change or quite a big change probably clicked on something. So that's the basic demo.Right now let's be frank. Like I wanted to show like a simple example. So it's a call center. All the inputs to the class are like relatively simple. There is no jsm input, like if you're Expedia or whatever, you have a J with the hotels, Airbnb, you know, so the test will be almost like too simple or not covering enough.Your code, if you don't provide it with some input is valuable, like adjacent with all information or YAMA or whatever. So you can actually add input data and the AI or model. It's actually by the way, a set of models and algorithms that will use that input to create interesting tests. And another thing is many people have some reference tests that they already made. It could be because they already made it or because they want like a very specific they have like how they imagine the test. So they just write one and then you add a reference and that will inspire all the rest of the tests. And also you can give like hints. [00:15:00] This is by the way plan to be like dynamic hints, like for different type of code.We will provide different hints. So we can help you become a bit more knowledgeable about how to test your code. So you can ask for like having a, a given one then, or you can have like at a funny private, like make different joke for each test or for example,Swyx: I'm curious, why did you choose that one? This is the pirate one. Yeah.Itamar: Interesting choice to put on your products. It could be like 11:00 PM of people sitting around. Let's choose one funny thingSwyx: and yeah. So two serious ones and one funny one. Yeah. Just for the listening audience, can you read out the other hints that you decided on as well?Itamar: Yeah, so specifically, like for this case, relatively very simple class, so there's not much to do, but I'm gonna go to one more thing here on the configuration. But it basically is given when then style, it's one of the best practices and tests. So even when I report a bug, for example, I found a bug when someone else code, usually I wanna say like, given, use this environment or use that this way when I run this function, et cetera.Oh, then it's a very, very full report. And it's very common to use that in like in unit test and perform.Swyx: I have never been shown this format.Itamar: I love that you, you mentioned that because if you go to CS undergrad you take so many courses in development, but none of them probably in testing, and it's so important. So why would you, and you don't go to Udemy or [00:16:30] whatever and, and do a testing course, right? Like it's, it's boring. Like people either don't do component level testing because they hate it or they do it and they hate it. And I think part of it it's because they're missing tool to make it fun.Also usually you don't get yourself educated about it because you wanna write your code. And part of what we're trying to do here is help people get smarter about testing and make it like easy. So this is like very common. And the idea here is that for different type of code, we'll suggest different type of hints to make you more knowledgeable.We're doing it on an education app, but we wanna help developers become smarter, more knowledgeable about this field. And another one is mock. So right now, our model decided that there's no need for mock here, which is a good decision. But if we would go to real world case, like, I'm part of AutoGPT community and there's all of tooling going on there. Right? And maybe when I want to test like a specific component, and it's relatively clear that going to the web and doing some search and coming back, I don't really need to do that. Like I know what I expect to do and so I can mock that part of using to crawl the web.A certain percentage of accuracy, like around 90, we will decide this is worth mocking and we will inject it. I can click it now and force our system to mock this. But you'll see like a bit stupid mocking because it really doesn't make sense. So I chose this pirate stuff, like add funny pirate like doc stringing make a different joke for each test.And I forced it to add mocks, [00:18:00] the tests were deleted and now we're creating six new tests. And you see, here's the shiver me timbers, the test checks, the call successful, probably there's some joke at the end. So in this case, like even if you try to force it to mock it didn't happen because there's nothing but we might find here like stuff that it mock that really doesn't make sense because there's nothing to mock here.So that's one thing I. I can show a demo where we actually catch a bug. And, and I really love that, you know how it is you're building a developer tools, the best thing you can see is developers that you don't know giving you five stars and sharing a few stuff.We have a discord with thousands of users. But I love to see the individual reports the most. This was one of my favorites. It helped me to find two bugs. I mentioned our vision is to reach zero bugs. Like, if you may say, we want to clean the internet from bugs.Swyx: So debugging the internet. I have my podcast title.Itamar: So, so I think like if we move to another exampleSwyx: Yes, yes, please, please. This is great.Itamar: I'm moving to a different example, it is the bank account. By the way, if you go to ChatGPT and, and you can ask me what's the difference between Codium AI and using ChatGPT.Mm-hmm. I'm, I'm like giving you this hard question later. Yeah. So if you ask ChatGPT give me an example to test a code, it might give you this bank account. It's like the one-on-one stuff, right? And one of the reasons I gave it, because it's easy to inject bugs here, that's easy to understand [00:19:30] anyway.And what I'm gonna do right now is like this bank account, I'm gonna change the deposit from plus to minus as an example. And then I'm gonna run code similarly to how I did before, like it suggests to do that for the entire class. And then there is the code analysis soon. And when we announce very soon, part of this podcast, it's going to have more features here in the code analysis.We're gonna talk about it. Yep. And then there is the test that I can run. And the question is that if we're gonna catch the bag, the bugs using running the test, Because who knows, maybe this implementation is the right one, right? Like you need to, to converse with the developer. Maybe in this weird bank, bank you deposit and, and the bank takes money from you.And we could talk about how this happens, but actually you can see already here that we are already suggesting a hint that something is wrong here and here's a suggestion to put it from minus to to plus. And we'll try to reflect and, and fix and then we will see actually the model telling you, hey, maybe this is not a bug in the test, maybe it's in the code.Swyx: I wanna stay on this a little bit. First of all, this is very impressive and I think it's very valuable. What user numbers can you disclose, you launched it and then it's got fairly organic growth. You told me something off the air, but you know, I just wanted to show people like this is being adopted in quite a large amount.Itamar:  [00:21:00] First of all, I'm a relatively transparent person. Like even as a manager, I think I was like top one percentile being transparent in Alibaba. It wasn't five out of five, which is a good thing because that's extreme, but it was a good, but it also could be a bad, some people would claim it's a bad thing.Like for example, if my CTO in Alibaba would tell me you did really bad and it might cut your entire budget by 30%, if in half a year you're not gonna do like much better and this and that. So I come back to a team and tell 'em what's going on without like trying to smooth thing out and we need to solve it together.If not, you're not fitting in this team. So that's my point of view. And the same thing, one of the fun thing that I like about building for developers, they kind of want that from you. To be transparent. So we are on the high numbers of thousands of weekly active users. Now, if you convert from 50,000 downloads to high thousands of weekly active users, it means like a lot of those that actually try us keep using us weekly.I'm not talking about even monthly, like weekly. And that was like one of their best expectations because you don't test your code every day. Right now, you can see it's mostly focused on testing. So you probably test it like once a week. Like we wanted to make it so smooth with your development methodology and development lifecycle that you use it every day.Like at the moment we hope it to be used weekly. And that's what we're getting. And the growth is about like every two, three weeks we double the amount of weekly and downloads. It's still very early, like seven weeks. So I don't know if it'll keep that way, but we hope so. Well [00:22:30] actually I hope that it'll be much more double every two, three weeks maybe. Thanks to the podcast.Swyx: Well, we, yeah, we'll, we'll add you know, a few thousand hopefully. The reason I ask this is because I think there's a lot of organic growth that people are sharing it with their friends and also I think you've also learned a lot from your earliest days in, in the private beta test.Like what have you learned since launching about how people want to use these testing tools?Itamar: One thing I didn't share with you is like, when you say virality, there is like inter virality and intra virality. Okay. Like within the company and outside the company. So which teams are using us? I can't say, but I can tell you that a lot of San Francisco companies are using us.And one of the things like I'm really surprised is that one team, I saw one user two weeks ago, I was so happy. And then I came yesterday and I saw 48 of that company. So what I'm trying to say to be frank is that we see more intra virality right now than inter virality. I don't see like video being shared all around Twitter. See what's going on here. Yeah. But I do see, like people share within the company, you need to use it because it's really helpful with productivity and it's something that we will work about the [00:24:00] inter virality.But to be frank, first I wanna make sure that it's helpful for developers. So I care more about intra virality and that we see working really well, because that means that tool is useful. So I'm telling to my colleague, sharing it on, on Twitter means that I also feel that it will make me cool or make me, and that's something maybe we'll need, still need, like testing.Swyx: You know, I don't, well, you're working on that. We're gonna announce something like that. Yeah. You are generating these tests, you know, based on what I saw there. You're generating these tests basically based on the name of the functions. And the doc strings, I guess?Itamar:So I think like if you obfuscate the entire code, like our accuracy will drop by 50%. So it's right. We're using a lot of hints that you see there. Like for example, the functioning, the dog string, the, the variable names et cetera. It doesn't have to be perfect, but it has a lot of hints.By the way. In some cases, in the code suggestion, we will actually suggest renaming some of the stuff that will sync, that will help us. Like there's suge renaming suggestion, for example. Usually in this case, instead of calling this variable is client and of course you'll see is “preferred client” because basically it gives a different commission for that.So we do suggest it because if you accept it, it also means it will be easier for our model or system to keep improving.Swyx: Is that a different model?Itamar: Okay. That brings a bit to the topic of models properties. Yeah. I'll share it really quickly because Take us off. Yes. It's relevant. Take us off. Off. Might take us off road.I think [00:25:30] like different models are better on different properties, for example, how obedient you are to instruction, how good you are to prompt forcing, like to format forcing. I want the results to be in a certain format or how accurate you are or how good you are in understanding code.There's so many calls happening here to models by the way. I. Just by clicking one, Hey Codium AI. Can you help me with this bank account? We do a dozen of different calls and each feature you click could be like, like with that reflect and fix and then like we choose the, the best one.I'm not talking about like hundreds of models, but we could, could use different APIs of open AI for example, and, and other models, et cetera. So basically like different models are better on different aspect. Going back to your, what we talked about, all the models will benefit from having those hints in, in the code, that rather in the code itself or documentation, et cetera.And also in the code analysis, we also consider the code analysis to be the ground truth to some extent. And soon we're also going to allow you to edit it and that will use that as well.Alessio: Yeah, maybe talk a little bit more about. How do I actually get all these models to work together? I think there's a lot of people that have only been exposed to Copilot so far, which is one use case, just complete what I'm writing. You're doing a lot more things here. A lot of people listening are engineers themselves, some of them build these tools, so they would love to [00:27:00] hear more about how do you orchestrate them, how do you decide which model the what, stuff like that.Itamar: So I'll start with the end because that is a very deterministic answer, is that we benchmark different models.Like every time this there a new model in, in town, like recently it's already old news. StarCoder. It's already like, so old news like few days ago.Swyx: No, no, no. Maybe you want to fill in what it is StarCoder?Itamar: I think StarCoder is, is a new up and coming model. We immediately test it on different benchmark and see if, if it's better on some properties, et cetera.We're gonna talk about it like a chain of thoughts in different part in the chain would benefit from different property. If I wanna do code analysis and, and convert it to natural language, maybe one model would be, would be better if I want to output like a result in, in a certain format.Maybe another model is better in forcing the, a certain format you probably saw on Twitter, et cetera. People talk about it's hard to ask model to output JSON et cetera. So basically we predefine. For different tasks, we, we use different models and I think like this is for individuals, for developers to check, try to sync, like the test that now you are working on, what is most important for you to get, you want the semantic understanding, that's most important? You want the output, like are you asking for a very specific [00:28:30] output?It's just like a chat or are you asking to give a output of code and have only code, no description. Or if there's a description of the top doc string and not something else. And then we use different models. We are aiming to have our own models in in 2024. Being independent of any other third party, like OpenAI or so, but since our product is very challenging, it has UI/UX challenges, engineering challenge, statical and dynamical analysis, and AI.As entrepreneur, you need to choose your battles. And we thought that it's better for us to, to focus on everything around the model. And one day when we are like thinking that we have the, the right UX/UI engineering, et cetera, we'll focus on model building. This is also, by the way, what we did in in Alibaba.Even when I had like half a million dollar a month for trading one foundational model, I would never start this way. You always try like first using the best model you can for your product. Then understanding what's the glass ceiling for that model? Then fine tune a foundation model, reach a higher glass ceiling and then training your own.That's what we're aiming and that's what I suggest other developers like, don't necessarily take a model and, and say, oh, it's so easy these days to do RLHF, et cetera. Like I see it's like only $600. Yeah, but what are you trying to optimize for? The properties. Don't try to like certain models first, organize your challenges.Understand the [00:30:00] properties you're aiming for and start playing with that. And only then go to train your own model.Alessio: Yeah. And when you say benchmark, you know, we did a one hour long episode, some benchmarks, there's like many of them. Are you building some unique evals to like your own problems? Like how are you doing that? And that's also work for your future model building, obviously, having good benchmarks. Yeah.Itamar:. Yeah. That's very interesting. So first of all, with all the respect, I think like we're dealing with ML benchmark for hundreds of years now.I'm, I'm kidding. But like for tens of years, right? Benchmarking statistical creatures is something that, that we're doing for a long time. I think what's new here is the generative part. It's an open challenge to some extent. And therefore, like maybe we need to re rethink some of the way we benchmark.And one of the notions that I really believe in, I don't have a proof for that, is like create a benchmark in levels. Let's say you create a benchmark from level one to 10, and it's a property based benchmark. Let's say I have a WebGPT ask something from the internet and then it should fetch it for me.So challenge level one could be, I'm asking it and it brings me something. Level number two could be I'm asking it and it has a certain structure. Let's say for example, I want to test AutoGPT. Okay. And I'm asking it to summarize what's the best cocktail I could have for this season in San Francisco.So [00:31:30] I would expect, like, for example, for that model to go. This is my I what I think to search the internet and do a certain thing. So level number three could be that I want to check that as part of this request. It uses a certain tools level five, you can add to that. I expect that it'll bring me back something like relevance and level nine it actually prints the cocktail for me I taste it and it's good. So, so I think like how I see it is like we need to have data sets similar to before and make sure that we not fine tuning the model the same way we test it. So we have one challenges that we fine tune over, right? And few challenges that we don't.And the new concept may is having those level which are property based, which is something that we know from software testing and less for ML. And this is where I think that these two concepts merge.Swyx: Maybe Codium can do ML testing in the future as well.Itamar: Yeah, that's a good idea.Swyx: Okay. I wanted to cover a little bit more about Codium in the present and then we'll go into the slides that you have.So you have some UI/UX stuff and you've obviously VS Code is the majority market share at this point of IDE, but you also have IntelliJ right?Itamar: Jet Brains in general.Swyx: Yeah. Anything that you learned supporting JetBrains stuff? You were very passionate about this one user who left you a negative review.What is the challenge of that? Like how do you think about the market, you know, maybe you should focus on VS Code since it's so popular?Itamar: Yeah. [00:33:00] So currently the VS Code extension is leading over JetBrains. And we were for a long time and, and like when I tell you long time, it could be like two or three weeks with version oh 0.5, point x something in, in VS code, although oh 0.4 or so a jet brains, we really saw the difference in, in the how people react.So we also knew that oh 0.5 is much more meaningful and one of the users left developers left three stars on, on jet brands and I really remember that. Like I, I love that. Like it's what do you want to get at, at, at our stage? What's wrong? Like, yes, you want that indication, you know, the worst thing is getting nothing.I actually, not sure if it's not better to get even the bad indication, only getting good ones to be re frank like at, at, at least in our stage. So we're, we're 9, 10, 10 months old startup. So I think like generally speaking We find it easier and fun to develop in vs code extension versus JetBrains.Although JetBrains has like very nice property, when you develop extension for one of the IDEs, it usually works well for all the others, like it's one extension for PyCharm, and et cetera. I think like there's even more flexibility in the VS code. Like for example, this app is, is a React extension as opposed that it's native in the JetBrains one we're using. What I learned is that it's basically is almost like [00:34:30] developing Android and iOS where you wanna have a lot of the best practices where you have one backend and all the software development like best practices with it.Like, like one backend version V1 supports both under Android and iOS and not different backends because that's crazy. And then you need all the methodology. What, what means that you move from one to 1.1 on the backend? What supports whatnot? If you don't what I'm talking about, if you developed in the past, things like that.So it's important. And then it's like under Android and iOS and, and you relatively want it to be the same because you don't want one developer in the same team working with Jet Brains and then other VS code and they're like talking, whoa, that's not what I'm seeing. And with code, what are you talking about?And in the future we're also gonna have like teams offering of collaboration Right now if you close Codium Tab, everything is like lost except of the test code, which you, you can, like if I go back to a test suite and do open as a file, and now you have a test file with everything that you can just save, but all the goodies here it's lost. One day we're gonna have like a platform you can save all that, collaborate with people, have it part of your PR, like have suggested part of your PR. And then you wanna have some alignment. So one of the challenges, like UX/UI, when you think about a feature, it should, some way or another fit for both platforms be because you want, I think by the way, in iOS and Android, Android sometimes you don't care about parity, but here you're talking about developers that might be on the same [00:36:00] team.So you do care a lot about that.Alessio: Obviously this is a completely different way to work for developers. I'm sure this is not everything you wanna build and you have some hint. So maybe take us through what you see the future of software development look like.Itamar: Well, that's great and also like related to our announcement, what we're working on.Part of it you already start seeing in my, in my demo before, but now I'll put it into a framework. I'll be clearer. So I think like the software development world in 2025 is gonna look very different from 2020. Very different. By the way. I think 2020 is different from 2000. I liked the web development in 95, so I needed to choose geocities and things like that.Today's much easier to build a web app and whatever, one of the cloud. So, but I think 2025 is gonna look very different in 2020 for the traditional coding. And that's like a paradigm I don't think will, will change too much in the last few years. And, and I'm gonna go over that when I, when I'm talking about, so j just to focus, I'm gonna show you like how I think the intelligence software development world look like, but I'm gonna put it in the lens of Codium AI.We are focused on code integrity. We care that with all this advancement of co-generation, et cetera, we wanna make sure that developers can code fast with confidence. That they have confidence on generated code in the AI that they are using that. That's our focus. So I'm gonna put, put that like lens when I'm going to explain.So I think like traditional development. Today works like creating some spec for different companies, [00:37:30] different development teams. Could mean something else, could be something on Figma, something on Google Docs, something on Jira. And then usually you jump directly to code implementation. And then if you have the time or patience, or will, you do some testing.And I think like some people would say that it's better to do TDD, like not everyone. Some would say like, write spec, write your tests, make sure they're green, that they do not pass. Write your implementation until your test pass. Most people do not practice it. I think for just a few, a few reason, let them mention two.One, it's tedious and I wanna write my code like before I want my test. And I don't think, and, and the second is, I think like we're missing tools to make it possible. And what we are advocating, what I'm going to explain is actually neither. Okay. It's very, I want to say it's very important. So here's how we think that the future of development pipeline or process is gonna look like.I'm gonna redo it in steps. So, first thing I think there do I wanna say that they're gonna be coding assistance and coding agents. Assistant is like co-pilot, for example, and agents is something that you give it a goal or a task and actually chains a few tasks together to complete your goal.Let's have that in mind. So I think like, What's happening right now when you saw our demo is what I presented a few minutes ago, is that you start with an implementation and we create spec for you and test for you. And that was like a agent, like you didn't converse with it, you just [00:39:00] click a button.And, and we did a, a chain of thought, like to create these, that's why it's it's an agent. And then we gave you an assistant to change tests, like you can converse it with it et cetera. So that's like what I presented today. What we're announcing is about a vision that we called the DRY. Don't repeat yourself. I'm gonna get to that when I'm, when I'm gonna show you the entire vision. But first I wanna show you an intermediate step that what we're going to release. So right now you can write your code. Or part of it, like for example, just a class abstract or so with a coding assistant like copilot and maybe in the future, like a Codium AI coding assistant.And then you can create a spec I already presented to you. And the next thing is that you going to have like a spec assistant to generate technical spec, helping you fill it quickly focused on that. And this is something that we're working on and, and going to release the first feature very soon as part of announcement.And it's gonna be very lean. Okay? We're, we're a startup that going bottom up, like lean features going to more and more comprehensive one. And then once you have the spec and implementation, you can either from implementation, have tests, and then you can run the test and fix them like I presented to you.But you can also from spec create tests, okay? From the spec directly to tests. [00:40:30]So then now you have a really interesting thing going on here is that you can start from spec, create, test, create code. You can start from test create code. You can start from a limitation. From code, create, spec and test. And actually we think the future is a very flexible one. You don't need to choose what you're practicing traditional TDD or whatever you wanna start with.If you have already some spec being created together with one time in one sprint, you decided to write a spec because you wanted to align about it with your team, et cetera, and now you can go and create tests and implementation or you wanted to run ahead and write your code. Creating tests and spec that aligns to it will be relatively easy.So what I'm talking about is extreme DRY concept; DRY is don't repeat yourself. Until today when we talked about DRY is like, don't repeat your code. I claim that there is a big parts of the spec test and implementation that repeat himself, but it's not a complete repetition because if spec was as detailed as the implementation, it's actually the implementation.But the spec is usually in different language, could be natural language and visual. And what we're aiming for, our vision is enabling the dry concept to the extreme. With all these three: you write your test will help you generate the code and the spec you write your spec will help you doing the test and implementation.Now the developers is the driver, okay? You'll have a lot [00:42:00] of like, what do you think about this? This is what you meant. Yes, no, you wanna fix the coder test, click yes or no. But you still be the driver. But there's gonna be like extreme automation on the DRY level. So that's what we're announcing, that we're aiming for as our vision and what we're providing these days in our product is the middle, is what, what you see in the middle, which is our code integrity agents working for you right now in your id, but soon also part of your Github actions, et cetera, helping you to align all these three.Alessio: This is great. How do you reconcile the difference in languages, you know, a lot of times the specs is maybe like a PM or it's like somebody who's more at the product level.Some of the implementation details is like backend developers for something. Frontend for something. How do you help translate the language between the two? And then I think in the one of the blog posts on your blog, you mentioned that this is also changing maybe how programming language themselves work. How do you see that change in the future? Like, are people gonna start From English, do you see a lot of them start from code and then it figures out the English for them?Itamar: Yeah. So first of all, I wanna say that although we're working, as we speak on managing we front-end frameworks and languages and usage, we are currently focused on the backend.So for example, as the spec, we won't let you input Figma, but don't be surprised if in 2024 the input of the spec could be a Figma. Actually, you can see [00:43:30] demos of that on a pencil drawing from OpenAI and when he exposed the GPT-4. So we will have that actually.I had a blog, but also I related to two different blogs. One, claiming a very knowledgeable and respectful, respectful person that says that English is going to be the new language program language and, and programming is dead. And another very respectful person, I think equally said that English is a horrible programming language.And actually, I think both of are correct. That's why when I wrote the blog, I, I actually related, and this is what we're saying here. Nothing is really fully redundant, but what's annoying here is that to align these three, you always need to work very hard. And that's where we want AI to help with. And if there is inconsistency will raise a question, what do, which one is true?And just click yes or no or test or, or, or code that, that what you can see in our product and we'll fix the right one accordingly. So I think like English and, and visual language and code. And the test language, let's call it like, like that for a second. All of them are going to persist. And just at the level of automation aligning all three is what we're aiming for.Swyx: You told me this before, so I I'm, I'm just actually seeing Alessio's reaction to it as a first time.Itamar: Yeah, yeah. Like you're absorbing like, yeah, yeah.Swyx: No, no. This is, I mean, you know, you can put your VC hat on or like compare, like what, what is the most critical or unsolved question presented by this vision?Alessio: A lot of these tools, especially we've seen a lot in the past, it's like the dynamic nature of a lot of this, you know?[00:45:00] Yeah. Sometimes, like, as you mentioned, sometimes people don't have time to write the test. Sometimes people don't have time to write the spec. Yeah. So sometimes you end up with things. Out of sync, you know? Yeah. Or like the implementation is moving much faster than the spec, and you need some of these agents to make the call sometimes to be like, no.Yeah, okay. The spec needs to change because clearly if you change the code this way, it needs to be like this in the future. I think my main question as a software developer myself, it's what is our role in the future? You know? Like, wow, how much should we intervene, where should we intervene?I've been coding for like 15 years, but if I've been coding for two years, where should I spend the next year? Yeah. Like focus on being better at understanding product and explain it again. Should I get better at syntax? You know, so that I can write code. Would love have any thoughts.Itamar: Yeah. You know, there's gonna be a difference between 1, 2, 3 years, three to six, six to 10, and 10 to 20. Let's for a second think about the idea that programming is solved. Then we're talking about a machine that can actually create any piece of code and start creating, like we're talking about singularity, right?Mm-hmm. If the singularity happens, then we're talking about this new set of problems. Let's put that aside. Like even if it happens in 2041, that's my prediction. I'm not sure like you should aim for thinking what you need to do, like, or not when the singularity happens. So I, [00:46:30] I would aim for mm-hmm.Like thinking about the future of the next five years or or, so. That's my recommendation because it's so crazy. Anyway. Maybe not the best recommendation. Take that we're for grain of salt. And please consult with a lawyer, at least in the scope of, of the next five years. The idea that the developers is the, the driver.It actually has like amazing team members. Agents that working for him or her and eventually because he or she's a driver, you need to understand especially what you're trying to achieve, but also being able to review what you get. The better you are in the lower level of programming in five years, it it mean like real, real program language.Then you'll be able to develop more sophisticated software and you will work in companies that probably pay more for sophisticated software and the more that you're less skilled in, in the actual programming, you actually would be able to be the programmer of the new era, almost a creator. You'll still maybe look on the code levels testing, et cetera, but what's important for you is being able to convert products, requirements, et cetera, to working with tools like Codium AI.So I think like there will be like degree of diff different type developers now. If you think about it for a second, I think like it's a natural evolution. It's, it's true today as well. Like if you know really good the Linux or assembly, et cetera, you'll probably work like on LLVM Nvidia [00:48:00] whatever, like things like that.Right. And okay. So I think it'll be like the next, next step. I'm talking about the next five years. Yeah. Yeah. Again, 15 years. I think it's, it's a new episode if you would like to invite me. Yeah. Oh, you'll be, you'll be back. Yeah. It's a new episode about how, how I think the world will look like when you really don't need a developer and we will be there as Cody mi like you can see.Mm-hmm.Alessio: Do we wanna dive a little bit into AutoGPT? You mentioned you're part of the community. Yeah.Swyx: Obviously Try, Catch, Finally, Repeat is also part of the company motto.Itamar: Yeah. So it actually really. Relates to what we're doing and there's a reason we have like a strong relationship and connection with the AutoGPT community and us being part part of it.So like you can see, we're talking about agent for a few months now, and we are building like a designated, a specific agent because we're trying to build like a product that works and gets the developer trust to have developer trust us. We're talking about code integrity. We need it to work. Like even if it will not put 100% it's not 100% by the way our product at all that UX/UI should speak the language of, oh, okay, we're not sure here, please take the driving seat.You want this or that. But we really not need, even if, if we're not close to 100%, we still need to work really well just throwing a number. 90%. And so we're building a like really designated agents like those that from code, create tests.So it could create tests, run them, fix them. It's a few tests. So we really believe in that we're [00:49:30] building a designated agent while Auto GPT is like a swarm of agents, general agents that were supposedly you can ask, please make me rich or make me rich by increase my net worth.Now please be so smart and knowledgeable to use a lot of agents and the tools, et cetera, to make it work. So I think like for AutoGPT community was less important to be very accurate at the beginning, rather to show the promise and start building a framework that aims directly to the end game and start improving from there.While what we are doing is the other way around. We're building an agent that works and build from there towards that. The target of what I explained before. But because of this related connection, although it's from different sides of the, like the philosophy of how you need to build those things, we really love the general idea.So we caught it really early that with Toran like building it, the, the maker of, of AutoGPT, and immediately I started contributing, guess what, what did I contribute at the beginning tests, right? So I started using Codium AI to build tests for AutoGPT, even, even finding problems this way, et cetera.So I become like one of the, let's say 10 contributors. And then in the core team of the management, I talk very often with with Toran on, on different aspects. And we are even gonna have a workshop,Swyx: a very small [00:49:00] meetingItamar: work meeting workshop. And we're going to compete together in a, in a hackathons.And to show that AutoGPT could be useful while, for example, Codium AI is creating the test for it, et cetera. So I'm part of that community, whether is my team are adding tests to it, whether like advising, whether like in in the management team or whether to helping Toran. Really, really on small thing.He is the amazing leader like visionaire and doing really well.Alessio: What do you think is the future of open source development? You know, obviously this is like a good example, right? You have code generating the test and in the future code could actually also implement the what the test wanna do. So like, yeah.How do you see that change? There's obviously not enough open source contributors and yeah, that's one of the, the main issue. Do you think these agents are maybe gonna help us? Nadia Eghbal has this  great book called like Working in Public and there's this type of projects called Stadium model, which is, yeah, a lot of people use them and like nobody wants to contribute to them.I'm curious about, is it gonna be a lot of noise added by a lot of these agents if we let them run on any repo that is open source? Like what are the contributing guidelines for like humans versus agents? I don't have any of the answers, but like some of the questions that I've been thinking about.Itamar: Okay. So I wanna repeat your question and make sure I understand you, but like, if they're agents, for example, dedicated for improving code, why can't we run them on, mm-hmm.Run them on like a full repository in, in fixing that? The situation right now is that I don't think that right now Auto GPT would be able to do that for you. Codium AI might but it's not open sourced right now. And and like you can see like in the months or two, you will be able to like running really quickly like development velocity, like our motto is moving fast with confidence by the way.So we try to like release like every day or so, three times even a day in the backend, et cetera. And we'll develop more feature, enable you, for example, to run an entire re, but, but it's not open source. So about the open source I think like AutoGPT or LangChain, you can't really like ask please improve my repository, make it better.I don't think it will work right now because because let me like. Softly quote Ilya from Open AI. He said, like right now, let's say that a certain LLM is 95% accurate. Now you're, you're concatenating the results. So the accuracy is one point like it's, it's decaying. And what you need is like more engineering frameworks and work to be done there in order to be able to deal with inaccuracies, et cetera.And that's what we specialize in Codium, but I wanna say that I'm not saying that Auto GPT won't be able to get there. Like the more tools and that going to be added, the [00:52:30] more prompt engineering that is dedicated for this, this idea will be added by the way, where I'm talking with Toran, that Codium, for example, would be one of the agents for Auto GPT.Think about it AutoGPT is not, is there for any goal, like increase my net worth, though not focused as us on fixing or improving code. We might be another agent, by the way. We might also be, we're working on it as a plugin for ChatGPT. We're actually almost finished with it. So that's like I think how it's gonna be done.Again, open opensource, not something we're thinking about. We wanted to be really good before weSwyx: opensource it. That was all very impressive. Your vision is actually very encouraging as well, and I, I'm very excited to try it out myself. I'm just curious on the Israel side of things, right? Like you, you're visiting San Francisco for a two week trip for this special program you can tell us about. But also I think a lot of American developers have heard that, you know, Israel has a really good tech scene. Mostly it's just security startups. You know, I did some, I was in some special unit in the I D F and like, you know, I come out and like, I'm doing the same thing again, but like, you know, for enterprises but maybe just something like, describe for, for the rest of the world.It's like, What is the Israeli tech scene like? What is this program that you're on and what shouldItamar: people know? So I think like Israel is the most condensed startup per capita. I think we're number one really? Or, or startup pair square meter. I think, I think we're number one as well because of these properties actually there is a very strong community and like everyone are around, like are [00:57:00] working in a.An entrepreneur or working in a startup. And when you go to the bar or the coffee, you hear if it's 20, 21, people talking about secondary, if it's 2023 talking about like how amazing Geni is, but everyone are like whatever are around you are like in, in the scene. And, and that's like a lot of networking and data propagation, I think.Somehow similar here to, to the Bay Area in San Francisco that it helps, right. So I think that's one of our strong points. You mentioned some others. I'm not saying that it doesn't help. Yes. And being in the like idf, the army, that age of 19, you go and start dealing with technology like very advanced one, that, that helps a lot.And then going back to the community, there's this community like is all over the world. And for example, there is this program called Icon. It's basically Israelis and in the Valley created a program for Israelis from, from Israel to come and it's called Silicon Valley 1 0 1 to learn what's going on here.Because with all the respect to the tech scene in Israel here, it's the, the real thing, right? So, so it's an non-profit organization by Israelis that moved here, that brings you and, and then brings people from a 16 D or, or Google or Navon or like. Amazing people from unicorns or, or up and coming startup or accelerator, and give you up-to-date talks and, and also connect you to relevant people.And that's, that's why I'm here in addition to to, you know, to [00:58:30] me and, and participate in this amazing podcast, et cetera.Swyx: Yeah. Oh, well, I, I think, I think there's a lot of exciting tech talent, you know, in, in Tel Aviv, and I, I'm, I'm glad that your offer is Israeli.Itamar: I, I think one of thing I wanted to say, like yeah, of course, that because of what, what what we said security is, is a very strong scene, but a actually water purification agriculture attack, there's a awful other things like usually it's come from necessity.Yeah. Like, we have big part of our company of our state is like a desert. So there's, there's other things like ai by the way is, is, is big also in Israel. Like, for example, I think there's an Israeli competitor to open ai. I'm not saying like it's as big, but it's ai 21, I think out of 10.Yeah. Out. Oh yeah. 21. Is this really? Yeah. Out of 10 like most, mm-hmm. Profound research labs. Research lab is, for example, I, I love, I love their. Yeah. Yeah.Swyx: I, I think we should try to talk to one of them. But yeah, when you and I met, we connected a little bit Singapore, you know, I was in the Singapore Army and Israeli army.We do have a lot of connections between countries and small countries that don't have a lot of natural resources that have to make due in the world by figuring out some other services. I think the Singapore startup scene has not done as well as the Israeli startup scene. So I'm very interested in, in how small, small countries can have a world impact essentially.Itamar: It's a question we're being asked a lot, like why, for example, let's go to the soft skills. I think like failing is a bad thing. Yeah. Like, okay. Like sometimes like VCs prefer to [01:00:00] put money on a, on an entrepreneur that failed in his first startup and actually succeeded because now that person is knowledgeable, what it mean to be, to fail and very hungry to, to succeed.So I think like generally, like there's a few reason I think it's hard to put the finger exactly, but we talked about a few things. But one other thing I think like failing is not like, this is my fourth company. I did one as, it wasn't a startup, it was a company as a teenager. And then I had like my first startup, my second company that like, had a amazing run, but then very beautiful collapse.And then like my third company, my second startup eventually exit successfully to, to Alibaba. So, so like, I think like it's there, there are a lot of trial and error, which is being appreciated, not like suppressed. I guess like that's one of the reason,Alessio: wanna jump into lightning round?Swyx: Yes. I think we send you into prep, but there's just three questions now.We've, we've actually reduced it quite a bit, but you have it,Alessio: so, and we can read them that you can take time and answer. You don't have to right away. First question, what is a already appin in AI that Utah would take much longer than an sItamar: Okay, so I have to, I hope it doesn't sound like arrogant,

A Score To Settle
ASTS 052: TV Goes To The Movies - ”The Man From U.N.C.L.E.”

A Score To Settle

Play Episode Listen Later May 21, 2023 82:49


Welcome all to the podcast! In this episode, I continue my mini-series entitled "TV Goes To The Movies", a topic in which I intend to explore TV shows that migrated over to the big screen. As expected, my focus is musically what was or was not carried over from the television episodes of a particular series to its respective theatrical feature, such as the main TV theme.   This time I open Channel D to examine "The Man From U.N.C.L.E." - a popular spy series which aired on NBC from 1964-1968. Its musical template was initially set by legendary composer Jerry Goldsmith, while still early in his career, and subsequently experienced many unexpected tonal shifts. Afterwards I discuss the eight "Man From U.N.C.L.E." "movies", each built from 2-part TV episodes and primarily released theatrically internationally, and lastly wrap up with the 2015 feature film, directed by Guy Ritchie, starring Henry Cavill and Armie Hammer, with music composed by Daniel Pemberton.   Title playtime index: Intro - 00:00:00 THE MAN FROM U.N.C.L.E. Theme (Concert Version) (Jerry Goldsmith) - 00:03:59 THE MAN FROM U.N.C.L.E. Theme (Season One broadcast version) (Jerry Goldsmith) - 00:06:15 Early Jerry Goldsmith TV & Film works - DR KILDARE (TV, 1961), CITY OF FEAR (Film, 1959), THE PRIZE (Film, 1963) - 00:07:10 THE MAN FROM U.N.C.L.E. (TV, Season One) (Jerry Goldsmith, Morton Stevens, Lalo Schifrin) - 00:15:50 THE MAN FROM U.N.C.L.E. (TV, Season Two) (Gerald Fried, Robert Drasnin) - 00:28:28 THE MAN FROM U.N.C.L.E. (TV, Season Three) (Gerald Fried, Robert Drasnin, Nelson Riddle) - 00:39:11 THE MAN FROM U.N.C.L.E. (TV, Season Four) (Richard Shores) - 00:50:40 THE MAN FROM U.N.C.L.E. "movies" (released theatrically internationally) (Gerald Fried) - 00:56:22 THE MAN FROM U.N.C.L.E. (Film, 2015) (Daniel Pemberton) - 01:02:49     Stay safe out there, take care of yourself and each other!    Connect with the podcast on Facebook and Twitter: www.facebook.com/ascoretosettle https://twitter.com/score2settlepod     Email the show at ascoretosettlepodcast@gmail.com  

Knicks Fan TV: The Podcast
New York Knicks vs Miami Heat Game 5 Post Game Show: Highlights, Analysis, Callers | EP 419

Knicks Fan TV: The Podcast

Play Episode Listen Later May 11, 2023 124:58


Knicks stay alive in a cardiac affair against the Miami Heat who are one win away from advancing to the Eastern Conference Finals. Knicks facing elimination in this game had there backs against the wall against a well coached and tough team who's grit got them this far. To open the game Julius Randle was hit inadvertently by Bam Adebayo which caused some swelling around the eye but that wouldn't stop Randle from competing in this game. Randle, Brunson and Barrett combined for 88 of the Knicks 112 Total Points scored. Brunson alone tallied 38 Pts 9 Rebs & 7 Asts. Brunson was on a mission which is commendable considering after every loss he took responsibility by say he has to be better and this game while facing elimination he put the team on his back and succeeded. Knicks were up by as much as 20 but the Heat stormed back in the 4th Quarter and brought the deficit to as low as 3 points. Clutch free throws from an unlikely candidate, Mitchell Robinson helped seal the deal and sparked MVP chants from Knicks fans. CP The Fanchise, JD Sports Talk and Alex Trataros, KFTV's Holy Trinity discuss this immaculate performance by the Knicks and Jalen Brunson, take calls from fans and discuss what's to come in Game 6 of this series. Get 20% off plus free shipping at Manscaped. Go to https://manscaped.com and enter promo code KFTV at checkout! $$ Support The Movement, Donate To The Show! $$ Paypal - https://paypal.me/knicksfantv CashApp - https://cash.app/$knicksfantv Join our Discord - https://discord.gg/sT3E6HqCKC JOIN THE MISSION TO 60K YOUTUBE SUBSCRIBERS! - https://Youtube.com/knicksfantv FACEBOOK: https://www.facebook.com/KnicksFanTVFB INSTAGRAM: https://Instagram.com/KnicksfanTV TWITTER: https://Twitter.com/Knicksfantv Join Our Mailing List to stay informed on new, future content and events! - http://eepurl.com/guEaOj GET YOUR KNICKSFANTV MERCH! - https://knicksfantv.com/shop Learn more about your ad choices. Visit podcastchoices.com/adchoices

The Bike Shed
382: Domain-Specific Languages

The Bike Shed

Play Episode Listen Later May 2, 2023 36:09


Joël has been integrating a third-party platform into a testing pipeline...and it has not been going well. Because it's not something she usually keeps up-to-date with, Stephanie is excited to learn about more of the open-source side of things in Ruby, what's new in the Ruby tooling world, and what folks are thinking about regarding the future of the language. Today's topic is inspired by an internal thoughtbot Slack thread about writing a custom matcher for Rspec. Stephanie and Joël contrast DSLs vs. Object APIs and also talk about: CanCanCan vs Pundit RSpec DSL When is a DSL helpful? Why not use both DSLs & Object APIs? Extensibility When does a DSL become a framework? This episode is brought to you by Airbrake (https://airbrake.io/?utm_campaign=Q3_2022%3A%20Bike%20Shed%20Podcast%20Ad&utm_source=Bike%20Shed&utm_medium=website). Visit Frictionless error monitoring and performance insight for your app stack. RubyKaigi 2023 (https://rubykaigi.org/2023/) Mystified by RSpec's DSL? by Jason Swett (https://www.codewithjason.com/mystified-rspecs-dsl-parentheses-can-add-clarity/) Building Custom RSpec Matchers with Regular Objects (https://thoughtbot.com/blog/building-custom-rspec-matchers-with-regular-objects) FactoryBot (https://github.com/thoughtbot/factory_bot) Writing a Domain-Specific Language in Ruby by Gabe Berke-Williams (https://thoughtbot.com/blog/writing-a-domain-specific-language-in-ruby) Capybara (https://teamcapybara.github.io/capybara/) Acceptance Tests at a Single Level of Abstraction (https://thoughtbot.com/blog/acceptance-tests-at-a-single-level-of-abstraction) CanCanCan (https://github.com/CanCanCommunity/cancancan) Pundit (https://www.capvidia.com/products/pundit) Discrete Math and Functional Programming (https://www.amazon.com/Discrete-Mathematics-Functional-Programming-VanDrunen/dp/1590282604) Transcript: STEPHANIE: Hello and welcome to another episode of The Bike Shed, a weekly podcast from your friends at thoughtbot about developing great software. I'm Stephanie Minn. JOËL: And I'm Joël Quenneville. And together, we're here to share a little bit of what we've learned along the way. STEPHANIE: So, Joël, what's new in your world? JOËL: I've been integrating a third-party platform into our testing pipeline for my client. It has not been going well. We've been struggling a little bit, mostly just because tests just kind of crash. Our testing pipeline is pretty complex. It's a lot of one script, some environment variables, does a few things, shells out to another script, which is in a different language. Does a few more things, shells out to another script, maybe calls out to rake, calls out to a shell script. There are four or five of these in a chain, and it's a bit of a mess. Somewhere along in there, something is not compatible with this third-party service that we're trying to integrate with. I was pairing this week with a colleague. And we were able to reproduce a situation where we were able to get a failure under some conditions and a success under other conditions. So these are basically, if we run the whole chain of scripts that call each other from the beginning, we know we get a failure. And if we skipped entirely the chain of scripts that set up things and then just manually try to invoke a third-party service, that works. And so now we know that there's something in between that's incompatible, and now it's just about narrowing things down. There are a few different approaches we could take. We could try to sort of work our way forward. We know a known point where it breaks and then just try to start the chain one step further and see where it fails. We could try to get fancy and do a binary search, like split it in half and then half and half again. We ended up doing it the other way, where we started at the end. We had our known good point and then just stepping one step back and saying, okay, now we introduce the last script in the chain. Does that work? Okay, that pass is great. Let's go one step further; two scripts up in the chain. And at some point, we find, okay, here's the one script that fails. Now, what is it within this script? And it was a really fun debugging session where we were just narrowing things down until we found the source of the bug. STEPHANIE: Wow, that sounds pretty complicated. It just seems like there are so many layers going on. And it was really challenging to pinpoint where the source of the issue was. JOËL: Definitely. I think all the layers made it really complicated. But having a process that we could follow and then kind of narrowing it down made it almost mechanical to figure out where the bug was once we got to a point where we had a known good point and a known bad point. STEPHANIE: Yeah, that makes sense. Kind of sounds like if you are using git bisect or something like that to narrow down the scope of where the issue could be. I'm curious because this is like a bunch of shell scripts and rake tasks or commands or whatever. What would have made this debugging process easier? JOËL: I think having fewer scripts in this chain. STEPHANIE: [laughs] That's fair. JOËL: We don't need so many scripts that call out to each other in different languages trying to share data via environment variables. So we've got a bit of a Rube Goldberg machine, and we're trying to patch in yet another piece in there. STEPHANIE: Yeah, that's really tough. I was curious if there was, I don't know, any logging or any other clues that you were getting along the way because I know from experience how painful it is to debug that kind of code. JOËL: It's interesting because I feel like normally logging is something that's really useful. In this particular case, we run into an exception at some point. So it's more of under what conditions does the exception happen? The important thing was to find that there is a point where it breaks, and there's a point where it doesn't, and realizing that if we ran some of these commands just directly without going through the whole pipeline, that things did work and that we were not triggering that exception. So all of a sudden, now that tells us, okay, something in our pipeline is wrong. And then we can just start narrowing things down. So yeah, adventures in debugging. Sometimes it's really frustrating, but then when you have a good process, and you find the bug, it's incredibly satisfying. STEPHANIE: I like that you used a process that can be applied to many different problems, in this particular case, debugging a testing pipeline. Maybe not something that we do every day, but certainly, it comes up, and now we have tools to address those kinds of issues as well. JOËL: So my week has been up and down with all of this debugging. What's been new in your world? STEPHANIE: I've been doing some travel planning because I'm going to RubyKaigi in Japan. JOËL: Whoa. STEPHANIE: This is actually going to be my first international conference, so I'm really looking forward to that. I just have never been compelled to travel abroad to go to a tech conference. But I'm really looking forward to going to RubyKaigi because now I've been to the U.S.-based conferences a few times. And I'm excited to see how things are different at an international conference and specifically a RubyKaigi because, obviously, there's a lot of really cool Ruby work happening over there in Japan. So I'm excited to learn about more of the open-source side of things of Ruby, what's new in the Ruby tooling world, and just what folks are thinking about in terms of the future of the language. That's not something I normally keep super up-to-date on. But I'm excited to be around people who do think and talk about these things a lot and maybe get some new insights into my own work. JOËL: Do you find that you tend to keep up more with some of the frameworks like Rails rather than the underlying language itself? STEPHANIE: Yeah, that's a good question. I do think because the framework changes a little more frequently, new releases are kind of more applicable to the work that I'm doing. Whereas language updates or upgrades are a little bit less top of mind for me because the point is that it doesn't have to change [laughs] all that much, and we can continue to work with things as expected and not be disrupted. So it is definitely like a whole new world for me, but I'm really looking forward to it. I think it will be really interesting and just kind of a whole other space to explore that I haven't really because I've usually been focused on more of the web development and industry work side of things. JOËL: What's a Ruby feature that either is coming out in the future or that came out in the last couple of releases that got you really excited? STEPHANIE: I think the conversation about typing in Ruby is something that has been on my radar but has also been ebbing and flowing over time. And I did see a few talks at RubyKaigi this year that are going to talk about how to introduce gradual typing in Ruby. And now that it has been out for a little bit and people have been using it, how people are feeling about it, pros and cons, and kind of where they're going to take it or not take it from there. JOËL: Have you done much TypeScript? STEPHANIE: I have been working more in TypeScript recently but did spend most of my front-end work coding days in JavaScript. And so that transition itself was pretty challenging for me where I suddenly felt a language that I did know pretty well. I was having to be in that...in somewhat of a beginner's mindset again. Even just reading the code itself, there were just so many new things to be looking at in terms of the syntax. And it was a difficult but ultimately pretty rewarding experience because the way I thought about JavaScript afterwards was much more refined, I think. JOËL: Types definitely, I think, change the way you think about code; at least, that's been my experience. STEPHANIE: Yeah, absolutely. I haven't gotten the pleasure to work with types in Ruby just yet, but I've just heard different experiences. And I'm excited to see what experts have to say about it. JOËL: That's the fun of going to a conference. STEPHANIE: Absolutely. So yeah, if any listeners are also headed to RubyKaigi, yeah, look out for me. JOËL: I was recently having a conversation with someone about the fact that a lot of languages provide ways to sort of embed many languages within them. So the Lisp family of languages are really big into macros and metaprogramming. Some other languages are big into giving you the ability to build your own ASTs or have really strong parsing capabilities so that you can produce your own, again, mini-language. And Ruby does this as well. It's pretty popular among the Ruby community to build DSLs, Domain-Specific Languages using some of Ruby's built-in abilities. But it seems to be a sort of universal need or at the very least a universal desire among programmers. Have you ever found yourself as a code author wanting to embed a sort of smaller language within your application? STEPHANIE: I don't think I have, to be honest. It's a very interesting question. Because I think the motivation to build your own mini-language using Ruby would have to be you'd have to have a really good reason for it, and in my experience, I haven't quite encountered that yet. Because, yeah, it seems like a lot of upfront work, a lot of overhead to introduce something like that, especially if it's not necessarily either a really, really particular domain that others might find a use for, or it just doesn't end up seeming worthwhile if I can just write regular, old Ruby code. JOËL: I think you're not alone. I think the Ruby community has been kind of a bit of a pendulum here where several years ago, everything that could be made into a DSL was. Now the pendulum kind of has been swinging the other way. And we see DSLs, but they're not quite as frequent. For those who maybe have not experienced a DSL or aren't quite familiar with the concept, how would you describe the idea? STEPHANIE: I think I would describe domain-specific languages as a bit of a mini-language that is created for a very particular problem space in mind to make development for that domain easier. Oftentimes, I've also kind of seen people describe the benefit of DSLs as being able to read that language as if it were plain English. And so, in my head, I have kind of, at least in the Ruby world, right? We see that a lot in different gems. RSpec, for example, has its own internal DSL, and many people really enjoy it because it took the domain of testing. And the way you write it kind of is how you might read or understand it in English. And so it's a bit easier to talk about what you're expecting in your tests. JOËL: Yeah, it's so high-level and minimal and domain-specific that it almost stops feeling like it's a programming language and can almost feel like it's a high-level configuration for this very particular domain, sometimes even to the point where the idea is that a non-programmer could read it and understand what's going on. STEPHANIE: I think RSpec is actually one of the first Ruby DSLs that you might encounter when you're learning Ruby for the first time. And I've definitely seen developers who are new to Ruby, you know, they're writing code, and they're like, okay, I'm ready to write a test now. And the project uses RSpec because that's what most of us use in our Rails applications. And then they see, like you said, almost a configuration language, and they are really confused. They're not really sure what they're reading. They struggle with the syntax a lot. And it ends up being a point of frustration when they're first starting out if they're not just copying and pasting other existing RSpec tests. I'm curious if you've seen that before. JOËL: I've definitely seen that. And it's a little bit ironic because oftentimes, an argument for DSL is that it makes things simpler that you don't even have to know Ruby; you can just write it. It's simpler. It's easier to write. It's easier to understand. And to a certain extent, maybe that's true. But for someone who does know Ruby and doesn't know your particular little domain language, now they're encountering something that they don't know. And they're having to learn it, and they're having to struggle with it. And it might behave a little bit weirdly compared to how Ruby normally works. And so sometimes it doesn't make it easier for adoption. But it does look really good in a README. STEPHANIE: That's totally fair. I think the other thing that's interesting about RSpec is that a lot of it is really just stylistic. I actually read a blog post by Jason Swett and the headline of it was "Mystified by RSpec's DSL? Some parentheses can add clarity." And he basically goes on to tell us that really RSpec is just leaning on some of Ruby's syntactic sugar of omitting parentheses for method calls. And if you just add the parentheses back in your it blocks or your describes, it can read a lot more like regular Ruby. And you might have a better time understanding what's going on when you realize that we're just passing our descriptors as arguments along with some blocks. JOËL: That's ironic given that oftentimes, the goal of these is to make it look like not Ruby. STEPHANIE: I agree; it is ironic. [laughs] MID-ROLL AD: Debugging errors can be a developer's worst nightmare...but it doesn't have to be. Airbrake is an award-winning error monitoring, performance, and deployment tracking tool created by developers for developers that can actually help cut your debugging time in half. So why do developers love Airbrake? It has all of the information that web developers need to monitor their application - including error management, performance insights, and deploy tracking! Airbrake's debugging tool catches all of your project errors, intelligently groups them, and points you to the issue in the code so you can quickly fix the bug before customers are impacted. In addition to stellar error monitoring, Airbrake's lightweight APM helps developers to track the performance and availability of their application through metrics like HTTP requests, response times, error occurrences, and user satisfaction. Finally, Airbrake Deploy Tracking helps developers track trends, fix bad deploys, and improve code quality. Since 2008, Airbrake has been a staple in the Ruby community and has grown to cover all major programming languages. Airbrake seamlessly integrates with your favorite apps to include modern features like single sign-on and SDK-based installation. From testing to production, Airbrake notifiers have your back. Your time is valuable, so why waste it combing through logs, waiting for user reports, or retrofitting other tools to monitor your application? You literally have nothing to lose. Head on over to airbrake.io/try/bikeshed to create your FREE developer account today! JOËL: I think another drawback that I've seen with DSLs is that they oftentimes are more limited in their capabilities. So if the designer of the gem didn't explicitly think of your use case, then oftentimes, it can be really hard to extend or to support edge cases that are not specifically designed for that language in the way that plain Ruby is often much more flexible. STEPHANIE: Yeah, that's really interesting because when a gem does have some kind of DSL, a lot of effort probably went into making that the main interface that you would work with or you would use. And when that isn't working for your use case, the design of the underlying objects may or may not be helpful for the changes that you want to make. JOËL: I think it's interesting that you mentioned the underlying objects because those are often sort of not meant for public consumption when you're building a gem that's DSL forward. I think, in many cases, my ideal gem would make those underlying objects the primary interface and then maybe offer DSL as a kind of nice-to-have layer on top for those situations that maybe aren't as complex where writing things in the domain language might actually be quite nice. But keeping those underlying objects as the interface, it's nice to use and well-documented for the majority of people. STEPHANIE: Yeah, I like that too because then you can get the best of both worlds. So speaking of trying to make a DSL work for you, have you ever experienced having to kind of work around the DSL to get the functionality you were hoping to achieve? JOËL: So I think we're talking about the idea of having both a DSL and the underlying objects. And RSpec is a great example of this with their custom matchers. RSpec itself is a DSL, but then they also offer a DSL to allow you to create custom matchers. And it's not super well documented. I always forget how to define them, and so I oftentimes don't bother. It's just kind of too much of a pain for something that doesn't always provide that much value. But if it were easy, I would probably do it more. Eventually, I realized that you could use just regular Ruby objects as custom matchers. And they just seemed to respond to certain methods, just regular old objects and polymorphism. And all of a sudden, now I'm back into all of the tools and mechanisms that I am familiar with, like the back of my hand. I can write objects all day. I can TDD them. I can apply any patterns that I want to if I'm doing something really complicated. I can extract helpers. All of that works really well with the knowledge that I already have without having to sink a lot of time into trying to learn the built-in DSL. So, for the most part, now, when I define custom matchers, I'll often jump directly to creating a regular object and making it conform to the matcher interface rather than relying on the DSL for that. So once we go back to the test, now we're back in DSL land. Now we're no longer talking in terms of objects so much. We'll have some nice methods and they will all kind of read like English. So to pull a recent example that I worked on, I might say something like expect this policy object method to conform to this truth table. STEPHANIE: That's a really interesting example. It actually kind of sounds like it hits the sweet spot of what you were describing earlier in the sense that it has a really nice DSL, but also, you can create your own objects, and that has an interface that you can implement. And yes, have your cake and eat it too. [laughs] But the idea that then you're kind of converting it back to the DSL because that is just what we know, and it has become so normalized. I was talking earlier about okay; when is a DSL worthwhile? When is the use case a good reason to implement it? And especially for gems that I think that are really popular that we as a Ruby community have collectively used most of the time on our projects because we have oftentimes a lot of the same problems that we're solving. It seems like this has become its own shared language, right? JOËL: Yeah, there are definitely some DSLs that we all end up learning because they're just so prominent in the Ruby community, even Rails itself ships with several built-in DSLs. STEPHANIE: Yeah, absolutely. FactoryBot is another one, too. It is a gem by thoughtbot. And actually, in preparation to talk about DSLs with you today, I scoured our blog and found a really great blog post, "Writing a Domain-Specific Language in Ruby" by Gabe Berke-Williams. And it is basically like, here's how to write something like FactoryBot and creating your own little mini Ruby DSL for something that would be very similar to what FactoryBot does for fixtures. JOËL: That's a great resource, and we'll make sure to link that in the show notes. We've been talking about some of the limitations of DSLs or some aspects of them maybe that we personally don't like. What are maybe examples of DSLs that you do enjoy working with? STEPHANIE: Yeah, I have an example for this one. I really enjoy using Capybara's DSL for acceptance testing. I did have to go down the route of writing some custom selectors for...I just had some HTML elements within kind of a complicated table and was trying to figure out how to write some selectors so that I could write the test as if it were in, you know, quote, unquote, "plain English" like, within this table, expect some value. And that was an interesting journey. But I think that it really helped me have a better understanding of accessibility of just the underlying building blocks of the page that I was working with. And, yeah, I really appreciate being able to read those tests from a user perspective and kind of know exactly what they're doing when they're interacting with this virtual browser without having to run it in headful mode and see it for myself. JOËL: It's always great when a DSL can give you that experience of abstracting enough to where it makes the code delightful to work with while also not having too high a cost to learn or being too restrictive in what it allows you to do. Would you make a difference between something that's a DSL versus maybe just code that's written at a higher level of abstraction? So maybe to get back to your example with Capybara, it's really nice to have these nice custom matchers and all of these things to work with HTML pages. If I'm writing, let's say, a helper method at the bottom of a test, I don't think that feels quite like it's a DSL yet. But it's definitely a higher level than specifying CSS selectors. So would you make a difference between those two things? STEPHANIE: That's a good question. I think it's one of those you know it when you see it kind of questions because it just depends on the amount of abstraction, like you mentioned, and maybe even metaprogramming. That takes something from the core language to morph into what you could qualify as a separate language. What do you think about this? JOËL: Yeah, part of me almost wonders if this exists kind of on a continuum, and the boundary might be a little bit fuzzy. I think there might be some other qualifications that come with it as well. Even though DSLs are typically higher-level helpers, it's usually more than just that. There are also sort of slightly different semantics in the way that you would tend to use them to the point where while they may be just Ruby methods, we don't use them like Ruby methods, and even to the point that we don't think of them as Ruby methods. To go back to that article you mentioned from Jason, where just reminding people, hey, if you put params on this, all of a sudden, it helps you remember, oh, it's just a Ruby method instead of being like, oh, this is a language keyword or something. STEPHANIE: Yeah, I wonder if there's also something to the idea of domain specificity where it should be self-service within the domain that you're working. And then it has limitations once you are trying to do something separate from the domain. JOËL: Right, it's an element of focus to this. And I think it's probably also a language is not just one helper; it's a collection typically. So it's probably a series of high-level helpers, potentially. They might not be methods, even though that is ultimately one of the primary interfaces we use to run code in Ruby. So it's a collection of methods that are high-level, but the collection itself is focused. And oftentimes, they're meant to be used in a way where it's not just a traditional method call. STEPHANIE: Right. There's some amount of you bringing to the table your own use case in how you use those methods. JOËL: Yeah, so it might be mimicking a language keyword. It might be mimicking the idea of a configuration. We see that a little bit with ActiveRecord and some of the, let's say, the association and validation APIs. Those kind of feel like, yes, they're embedded in a class, but they feel like either keywords or even just straight-up configuration where you set key-value pairs of things to configure how a particular class is going to work. STEPHANIE: Yeah, that's true for a lot of things in Rails, too, if we're talking about routes and initializers as well. JOËL: So I've complained about some things I don't like about DSLs. I really like the routing DSL in Rails. STEPHANIE: Why is that? JOËL: I think it's very compact and readable. And that's an element that's really nice about DSLs is that it can make things feel very readable and, oftentimes, we read code more often than we write it. And routes have...I was going to say fewer edge cases, but I have seen some really gnarly route files that are pretty awful to work with, especially if you're mostly writing RESTful controllers, and I would recommend that people do. It's really nice to just be able to skim through a route file and be like, oh, these are the resources in my app and the actions I can do on each resource. And here are the ones that are nested. STEPHANIE: Yeah, it almost sounds like a DSL can provide guardrails towards the recommended way of tackling that particular domain. The routes DSL really discourages you from doing anything too complicated because they are encouraging you to follow the Rails convention. And so I think that goes back to the specificity piece of if you've written a DSL, it's because you've thought very deeply about this particular domain and how common problems show up and how you would want people to be empowered by the language rather than inhibited by it. JOËL: I think, thinking more about that, the word that comes to mind is declarative. When you read code that's written with DSLs, typically, it's very declarative. It's more just describing a thing as opposed to either procedural, a series of commands to do, or even OO, where you're composing objects and sending messages to each other. And so problems that lend themselves to being implemented through more descriptive and declarative approaches probably are really good candidates for a DSL. STEPHANIE: Yeah, I like that a lot because when we talk about domains, we're not necessarily talking about a business domain, which is kind of the other way that some folks think about that word. We're talking about a problem space. And the idea of the language being declarative to describe the problem space makes a lot of sense to me because you want it to be flexible enough for different use cases but all within the idea of testing or browser navigation or whatever. JOËL: Yeah. I feel like there's a lot of... there are probably more problems that can be converted to declarative solutions than might initially kind of strike you. Sometimes the problem isn't quite as bounded. And so when you want customizations that are not supported by your DSL, then it kind of falls apart. So I think a classic situation that might feel like something declarative is authorization. Authorization are a series of rules for who can access what, and it would seem like this is a great case for a DSL. Wouldn't it be great to have just one file you can just kind of skim, and we can just see all of the access rules? Access rules that are basically asking to be done declaratively. And we have gems like that. The original CanCan gem and then the successor CanCanCan are trying to follow that approach. Have you used either of those gems? STEPHANIE: I did use the CanCanCan gem a while ago. JOËL: What was your experience with that style of authorization? STEPHANIE: It has been a while but I do remember having to check that original file of like all the different authorizations kind of repeatedly coming back to it to remember, okay, for this rule, what should be allowed to happen here? JOËL: So I think that's definitely one of the benefits is that you have all of your rules stored in one place, and you can kind of scan through the list. My experience, though, is that in practice, it often kind of balloons up and has all of these edge cases in it. And in some earlier versions, I don't know if that's still a problem today, it could even be difficult to accomplish certain things. If you're going to say that access to this particular object depends not on properties of that object itself but on some custom join or association or something like that, that could be really clunky to do or sometimes impossible depending on how esoteric it is or if there's some really complex custom logic to do. And once you're doing something like that, you don't really want to have that logic in your...in this case, it would be the abilities file but inside because that's not really something you express via the DSL anymore. Now you're dropping into OO or procedural world. STEPHANIE: Right. It seems a bit far removed from where we do actually care about the different abilities, especially for one-off cases. JOËL: That is interesting because I feel like there's a bit of a read-versus write-situation happening there as well. It's particularly nice to have, I think, everything in one abilities file for reading and for auditing. I've definitely been in code where there's like three or four ways to authorize, and they're all being used inconsistently, and that's not nice at all. On the other hand, it can be hard with DSL sometimes to customize or to go beyond the rules that are built in. In the case of authorization, you've effectively built a little mini-rules engine. And if you don't have a good way for people to add custom rules without just embedding procedural code into your abilities file, it's going to quickly get out of hand. STEPHANIE: Yeah, that makes sense. On the topic of authorization, you did mention an example earlier when you were writing a policy object. JOËL: I've generally found that that's been my go-to pattern for authorization. I enjoy the Pundit gem that provides some kind of light scaffolding around working with policy objects, but it's a general pattern, and you can absolutely write your own. You don't need a gem for that. Now we're definitely not in the DSL world. We're not doing this declaratively. We're leaning very heavily on OO and saying we're just going to create objects. They talk to each other. They can do anything that any Ruby object can do and as simple or as complex as they need to be. So you have the full power of Ruby and all the patterns that you're used to using. The downside is it is a little bit harder to read and to kind of just audit what's happening in terms of permission because there's no high-level overview anymore. Now you've just got to look through a bunch of classes. So maybe that's the trade-off, flexibility, extensibility versus more declarative style and easy overview. STEPHANIE: That makes a lot of sense because we were talking earlier about guardrails. And because those boundaries do exist, that might not give us the flexibility we want compared to just writing regular Ruby objects. But yeah, we do get the benefit of, like you said, auditing, and at least if we don't try to do some really gnarly, custom stuff, [laughs] something that's easier to read and comprehend. JOËL: And, again, maybe that's where in the best of both worlds situation, you say, hey, I'm creating some form of rules engine, whether it's for describing routes, or authorization, permissions, or users can build custom business rules for a product or something like that. And it's all object-based under the hood. And then, we provide a DSL to make it nice to work with these rules. If a programmer using our gem wants to write a custom rule that just really extends what the ones we shipped can do, allow them to do that via the object API. We have all the objects available to you that underlie the DSL. Add more rules yourself. And then maybe those can be plugged back into the DSL like we saw with the RSpec and custom matchers. Or maybe you have to say, okay, if I have a custom rule object, now I have to just stay in the object space. And I think both of those solutions are okay. But now you've sort of kept those two worlds separate and still allowed people to extend. STEPHANIE: I like that as contributing to the language because language is never static. It changes over time. And that's a way that people can continue to evolve a language that may have been originally written at a certain time and place. JOËL: Moving on from DSLs, we got some listener feedback recently from James, who was listening to our episode on discrete math. And James really appreciated the episode and wanted to share a resource with us. This is the book "Discrete Math and Functional Programming" by Thomas VanDrunen. It's an introduction to discrete math as a theoretical concept taught side by side with the very practical aspect of learning to use the language standard ML, and both of those factor into each other. So you're kind of learning a little bit of theory and some practice, at the same time, getting to implement some discrete math concepts in standard ML to get a feel for them. Yeah, I've not read this book, but I love the concept of pairing a theoretical piece and a practical piece. So I'll drop a link to it in the show notes as well. Thank you, James. STEPHANIE: Yeah, thanks, James. And I guess this is just a little reminder that if our listeners have any feedback or questions they want to write in about, you can reach us at hosts@bikeshed.fm. JOËL: On that note. Shall we wrap up? STEPHANIE: Let's wrap up. Show notes for this episode can be found at bikeshed.fm. JOËL: This show has been produced and edited by Mandy Moore. STEPHANIE: If you enjoyed listening, one really easy way to support the show is to leave us a quick rating or even a review in iTunes. It really helps other folks find the show. JOËL: If you have any feedback for this or any of our other episodes, you can reach us @_bikeshed, or you can reach me @joelquen on Twitter. STEPHANIE: Or reach both of us at hosts@bikeshed.fm via email. JOËL: Thanks so much for listening to The Bike Shed, and we'll see you next week. ALL: Byeeeeeee!!!!!!! ANNOUNCER: This podcast is brought to you by thoughtbot, your expert strategy, design, development, and product management partner. We bring digital products from idea to success and teach you how because we care. Learn more at thoughtbot.com.

A Score To Settle
ASTS 051: TV Goes To The Movies - ”Mission: Impossible”

A Score To Settle

Play Episode Listen Later Mar 27, 2023 108:29


Hello everyone! With this episode of the podcast, I begin a new sub-series entitled "TV Goes To The Movies", a topic intended to explore TV shows which migrated over to the big screen.   In mapping out a potential plan for the podcast this year, I felt motivated to explore this scenario in terms of musically what was and was not carried over from the television episodes of a particular series to its respective theatrical feature. For example, was the TV series' main theme referenced? Was the style of episodic scoring repeated? Was the series composer, or composers, hired on for the cinematic adventures? My plan is to feature music released officially on album from a selected TV series, followed by the films and see if we can identify recurring attributes.   The initial episode in this sub-series is fraught with danger and intrigue... that being MISSION: IMPOSSIBLE!   Title playtime index: MISSION: IMPOSSIBLE (TV, 1966-1973) (Lalo Schifrin, et al) - 00:00:00 MISSION: IMPOSSIBLE (TV, 1988-1990) (Lalo Schifrin, Ron Jones) - 00:36:28 MISSION: IMPOSSIBLE (Film, 1996) (Danny Elfman) - 00:44:15 M:I 2 (aka MISSION: IMPOSSIBLE 2) (Film, 2000) (Hans Zimmer) - 00:55:37 MISSION: IMPOSSIBLE 3 (Film, 2006) (Michael Giacchino) - 01:05:47 MISSION: IMPOSSIBLE - GHOST PROTOCOL (Film, 2011) (Michael Giacchino) - 01:10:03 MISSION: IMPOSSIBLE - ROGUE NATION (Film, 2015) (Joe Kramer) - 01:22:27 MISSION: IMPOSSIBLE - FALLOUT (Film, 2018) (Lorne Balfe) - 1:34:22   Stay safe out there, take care of yourself and each other!    Connect with the podcast on Facebook and Twitter: www.facebook.com/ascoretosettle https://twitter.com/score2settlepod     Email the show at ascoretosettlepodcast@gmail.com  

A Score To Settle
ASTS 050: Guest Neil S. Bulk, soundtrack album producer and editor-2022 in review

A Score To Settle

Play Episode Listen Later Feb 10, 2023 85:25


Happy New Year to all listeners out there and welcome to the first new episode of 2023! In this inaugural episode of the new year, I am accompanied by popular soundtrack album producer and editor Neil S. Bulk, in what has become a perennial, (hopefully) entertaining and often “inside baseball” type of discussion. Neil and I recap his standout projects from the prior year, 2022, for the venerable soundtrack record labels La La Land Records, Quartet Records and Varese Sarabande. As always, I appreciate when Neil can spend time to relay the details and experiences on these albums!   Below are the films and composers represented here, with time index for helpful reference:   FIRST BLOOD (1982), RAMBO: FIRST BLOOD PART II (1985), RAMBO III (1988) (Jerry Goldsmith) - 00:00:00 MARY, QUEEN OF SCOTS (1971) (John Barry) - 00:15:39 CHAPLIN (1992) (John Barry) - 00:19:10 DR SEUSS' HOW THE GRINCH STOLE CHRISTMAS (2000) (James Horner) - 00:26:09 TOMORROW NEVER DIES (1997) (David Arnold) - 00:33:43 THE GODFATHER (1972) (Nino Rota) - 00:44:54 PRESUMED INNOCENT (1990) (John Williams) - 00:55:00 DEATH BECOMES HER (1992) (Alan Silvestri) - 1:01:02 L.A. CONFIDENTIAL (1997) (Jerry Goldsmith) - 1:08:09 THE BURBS (1989) (Jerry Goldsmith) - 1:15:50   Stay safe out there, take care of yourself and each other!    Albums discussed now available at: https://lalalandrecords.com/ https://www.quartetrecords.com/ https://www.varesesarabande.com/   Connect with the podcast on Facebook and Twitter: www.facebook.com/ascoretosettle https://twitter.com/score2settlepod   Email the show at ascoretosettlepodcast@gmail.com   

The Knick Of Time Show
Knicks vs Phoenix Suns | Knicks Win 102-83 | Randle 28 Pts 16 Reb 6 Asts In Win

The Knick Of Time Show

Play Episode Listen Later Feb 3, 2023 86:46


The Knick of Time Show postgame show featuring J Ellis, Raw Hebrew Remnant, Lee Escobedo, and Ryan G.

Chasing Poker Greatness
#111 Tactical Tuesday: Then vs. Now - Poker Bluffing Strategy Revisited for 2023 (Online Poker)

Chasing Poker Greatness

Play Episode Listen Later Jan 31, 2023 32:53


Find out how to get a free poker course below! SCRIPT FLIP INCOMING: This week's show format has been turned right on its head as we finally make good on Coach Brad's previously broken promises -- for which he still hasn't apologized -- to revisit some old hands from yesteryear, when Jon Chai was but a wee lad trying to scratch two big blinds together and find his way in this poker world.Upon revisiting hands from all the way back in 2021 (a simpler time when Barbara Walters and Angela Lansbury were still entertaining us all), Coach Brad & Jon discover that maybe it's not how the hands were played that's important... but it was the friends we made along the way. Join us for episode 111!***FREE POKER COURSE*** Click here to get the NURRLE poker course completely for free: https://chasingpokergreatness.com/poker-courses/#free-nurrle***...AND SCROLL DOWN TO GET THE NUFFLE COURSE FOR FREE!***The first online cash game poker hand up for revisitation is from 1000NL (which is the modern day equivalent of 20NL after adjusting for inflation), in which Jon finds himself opening with TJ offsuit (some things never change) in the cutoff the big blind flat calls. Somehow he manages to make a hand with great showdown value. So there's no reason to bet... right? *Jon stares at you and doesn't answer* RIGHT?? Why aren't you answering, Jon? The original hand is from episode 39, available here: https://youtu.be/kK3hIvQhcqsThe next hand up for high level poker strategy discussion is AT suited in the cutoff. A 3-Bet by villain in the small blind increases the pot nicely for our hand in position. Jon "Houdinis" his way through the hand, but was it worth the risk? The original hand (episode 43) is available here: https://youtu.be/RwBnwQhLJ-800:00 Tactical Tuesday Episode 111 Intro00:29 Coach Brad Wilson & Poker Pro Jon Chai welcome everyone to the show01:32 Discussion of this week's poker strategy theme, which is Bluffing / Turning Pairs Into Bluffs / Trying to Get Villain to Fold The World, etc.02:22 Hand No. 1: JcTh (hero) in the cutoff vs. villain on the big blind (2-Bet pot, 1000NL)14:39 Join the CPG Wolves! (application info below)15:36 Hand No. 2: AsTs (hero) in the cutoff vs. villain in the small blind (3-Bet pot, 1000NL)36:38 Outro: go to chasingpokergreatness.com for more!These hands and a sick hype voiceover for the CPG Wolves can be found on today's episode of Tactical Tuesday! For more free poker training videos, visit our archive of now over 100 Tactical Tuesday videos on our website at https://chasingpokergreatness.com/free-poker-training/#tactical-tuesdayFor the most groundbreaking, solutions-based poker courses you will ever find, you need to get yourself to the Chasing Poker Greatness website and start clicking around: https://chasingpokergreatness.com/poker-courses/Preflop Bootcamp: https://chasingpokergreatness.com/poker-courses/#preflop-bootcamp-poker-courseFish In A Barrel: https://chasingpokergreatness.com/poker-courses/#fish-in-a-barrel-and-feeding-frenzy-poker-coursesNUFFLE (Neutralizing Flop Leads): https://chasingpokergreatness.com/poker-courses/#nuffle-neutralize-flop-leads-poker-course Want NUFFLE for free? Click here: https://chasingpokergreatness.com/poker-courses/#free-nuffleNUTTLE (Neutralizing Turn Leads): https://chasingpokergreatness.com/poker-courses/#nuttle-neutralize-turn-leads-poker-courseNURRLE (Neutralizing River Leads): https://chasingpokergreatness.com/poker-courses/#nurrle-neutralize-river-leads-poker-course -- ***FREE POKER COURSE*** Click here to get the NURRLE poker course completely for free: https://chasingpokergreatness.com/poker-courses/#free-nurrleJoin the CPG Wolves! The CPG Wolf Program is a close-knit brotherhood, hell bent on one thing only: Chasing Poker Greatness. Powered by bleeding edge Wolf strats and led by Coach Brad and his lieutenants, CPG Wolves are systematically prepared for almost any spot they'll encounter on the green felt. If you want to plug into an elite team and have a step-by-step game plan to help you realize your full poker potential, you can apply now. Space is limited and the pack is only as strong as its weakest member. So only the hungriest, grittiest, and most driven will be accepted into the program. Applications are open at cpgwolves.com!Follow Chasing Poker Greatness on social media!Chasing Poker Greatness on Twitter: https://twitter.com/CPGPodcast Chasing Poker Greatness on Instagram: https://www.instagram.com/chasingpokergreatness/Chasing Poker Greatness on YouTube: https://www.youtube.com/channel/UCqgThDa8bRtDuO1mBoGatrw Chasing Poker Greatness on Facebook: https://www.facebook.com/ChasingPokerGreatness/

A Score To Settle
ASTS 049: Now Playing... ”Thor: Love and Thunder”, ”Nope”, ”The Woman King”, ”Black Adam” and more!

A Score To Settle

Play Episode Listen Later Dec 4, 2022 77:51


Welcome back to the show! In an effort to wrap up 2022, I'm concluding with an episode of the Now Playing sub-series of the podcast. This is following on from the previous Now Playing installment (episode 47) in which I primarily covered the first half of the year, including THE BATMAN and TOP GUN: MAVERICK, with additional notable highlights from late 2021. In this episode, enjoy music from John Williams, Lorne Balfe, Junkie XL, Alexandre Desplat among others! Below are the films and composers represented here, with time index for helpful reference:   Title playtime index: THOR: LOVE AND THUNDER (Michael Giacchino & Nami Melumad) - 00:00:00 NOPE (Michael Abels) - 00:10:29 THREE THOUSAND YEARS OF LONGING (Tom Holkenborg aka Junkie XL) - 00:18:53 THE WOMAN KING (Terence Blanchard) - 00:27:18 THE LOST KING (Alexandre Desplat) - 00:34:41 BLACK ADAM (Lorne Balfe) - 00:42:30 BLACK PANTHER: WAKANDA FOREVER (Ludwig Göransson) - 00:53:07 THE FABELMANS (John Williams) - 1:03:57   Stay safe out there, take care of yourself and each other!    Connect with the podcast on Facebook and Twitter: www.facebook.com/ascoretosettle https://twitter.com/score2settlepod   Email the show at ascoretosettlepodcast@gmail.com

The Bike Shed
359: Serializers

The Bike Shed

Play Episode Listen Later Oct 25, 2022 44:10


Chris Toomey is back! (For an episode.) He talks about what he's been up to since handing off the reins to Joël. He's been playing around with something at Sagewell that he enjoys. At the core of it? Serializers. Primalize gem (https://github.com/jgaskins/primalize) Derek's talk on code review (https://www.youtube.com/watch?v=PJjmw9TRB7s) Inertia.js (https://inertiajs.com/) Phantom types (https://thoughtbot.com/blog/modeling-currency-in-elm-using-phantom-types) io-ts (https://gcanti.github.io/io-ts/) dry-rb (https://dry-rb.org/) parse don't validate (https://lexi-lambda.github.io/blog/2019/11/05/parse-don-t-validate/) value objects (http://wiki.c2.com/?ValueObject) broader perspective on parsing (https://thoughtbot.com/blog/a-broader-take-on-parsing) Enumerable#tally (https://medium.com/@baweaver/ruby-2-7-enumerable-tally-a706a5fb11ea) RubyConf mini (https://www.rubyconfmini.com/) where.missing (https://boringrails.com/tips/activerecord-where-missing-associations) Transcript: JOËL: Hello and welcome to another episode of The Bike Shed, a weekly podcast from your friends at thoughtbot about developing great software. I'm Joël Quenneville. And today, I'm joined by a very special guest, former host Chris Toomey. CHRIS: Hi, Joël. Thanks for having me. JOËL: And together, we're here to share a little bit of what we've learned along the way. So, Chris, what's new in your world? CHRIS: Being on this podcast is new in my world, or everything old is new again, or something along those lines. But, yeah, thank you so much for having me back. It's a pleasure. Although it's very odd, it feels somehow so different and yet very familiar. But yeah, more generally, what's new in my world? I think this was probably in development as I was winding down my time as a host here on The Bike Shed, but I don't know that I ever got a chance to talk about it. There has been a fun sort of deep-in-the-weeds technical thing that we've been playing around with at Sagewell that I've really enjoyed. So at the core of it, we have serializers. So we take some data structures in our Ruby on Rails code base, and we need to serialize them to JSON to send them to the front end. In our case, we're using Inertia, so it's not quite a JSON API, but it's fine to think about it in that way for the context of this discussion. And what we were finding is our front end has TypeScript. So we're writing Svelte, which is using TypeScript. And so we're stating or asserting that the types like, hey, we're going to get this data in from the back end, and it's going to have this shape to it. And we found that it was really hard to keep those in sync to keep, like, what does the user mean on the front end? What's the data that we're going to get? It's going to have a full name, which is a string, except sometimes that might be null. So how do we make sure that those are keeping up to date? And then we had a growing number of serializers on the back end and determining which serializer we were actually using, and it was just...it was a mess, to put it lightly. And so we had explored a couple of different options around it, and eventually, we found a library called Primalize. So Primalize is a Ruby library. It is for writing JSON serializers. But what's really interesting about it is it has a typing layer. It's like a type system sort of thing at play. So when you define a serializer in Primalize, instead of just saying, here are the fields; there is an ID, a name, et cetera, you say, there is an ID, and it is a string. There is a name, and it is a string, or an optional string, which is the even more interesting bit. You can say array. You can say object. You can say an enum of a couple of different values. And so we looked at that, and we said, ooh, this is very interesting. Astute listeners will know that this is probably useless in a Ruby system, which doesn't have types or a compilation step or anything like that. But what's really cool about this is when you use a Primalize serializer, as you're serializing an object, if there is ever a type mismatch, so the observed type at runtime and the authored type if those ever mismatch, then you can have some sort of notification happen. So in our case, we configured it to send a warning to Sentry to say, "Hey, you said the types were this, but we're actually seeing this other thing." Most often, it will be like an Optional, a null sneaking through, a nil sneaking through on the Ruby side. But what was really interesting is as we were squinting at this, we're like, huh, so now we're going to write all this type information. What if we could somehow get that type information down to the front end? So I had a long weekend, one weekend, and I went away, and I wrote a bunch of code that took all of those serializers, ran through them, and generated the associated TypeScript interfaces. And so now we have a build step that will essentially run that and assert that we're getting the same thing in CI as we have committed to the codebase. But now we have the generated serializer types on the front end that match to the used serializer on the back end, as well as the observed run-time types. So it's a combination of a true compilation step type system on the front end and a run-time type system on the back end, which has been very, very interesting. JOËL: I have a lot of thoughts here. CHRIS: I figured you would. [laughs] JOËL: But the first thing that came to mind is, as a consultant, there's a scenario with especially smaller startups that generally concerns me, and that is the CTO goes away for a weekend and writes a lot of code... CHRIS: [laughs] JOËL: And brings in a new system on Monday, which is exactly what you're describing here. How do you feel about the fact that you've done that? CHRIS: I wasn't ready to go this deep this early on in this episode. JOËL: [laughs] CHRIS: But honestly, that is a fantastic question. It's a thing that I have been truly not struggling with but really thinking about. We're going to go on a slight aside here, but I am finding it really difficult to engage with the actual day-to-day coding work that we're doing and to still stay close to the codebase and not be in the way. There's a pattern that I've seen happen a number of times now where I pick up a piece of work that is, you know, one of the tickets at the top of the backlog. I start to work on it. I get pulled into a meeting, then another meeting, then three more meetings. And suddenly, it's three days later. I haven't completed this piece of work that was defined to be the next most important piece of work. And suddenly, I'm blocking the team. JOËL: Hmmm. CHRIS: So I actually made a rule that I'm not allowed to own critical path work, which feels weird because it's like, I want to be engaged with that work. So the counterpoint to that is I'm now trying to schedule pairing sessions with each of the developers on the team once a week. And in that time, I can work on that sort of stuff with them, and they'll then own it and run with it. So it makes sure that I'm not blocking on those sorts of things, but I'm still connected to the core work that we're doing. But the other thing that you're describing of the CTO goes away for the weekend and then comes back with a new harebrained scheme; I'm very sensitive to that, having worked on; frankly, I think the same project. I can think of a project that you and I worked on where we experienced this. JOËL: I think we're thinking of the same project. CHRIS: So yes. Like, I'm scarred by that and, frankly, a handful of experiences of that nature. So we actually, I think, have a really healthy system in place at Sagewell for capturing, documenting, prioritizing this sort of other work, this developer-centric work. So this is the feature and bug work that gets prioritized and one list over here that is owned by our product manager. Separately, the dev team gets to say, here are the pain points. Here's the stuff that keeps breaking. Here are the things that I wish was better. Here is the observability hard-to-understand bits. And so we have a couple of different systems at play and recurring meetings and sort of unique ceremonies around that, and so this work was very much a fallout of that. It was actually a recurring topic that we kept trying a couple of different stabs at, and we never quite landed it. And then I showed up this one Monday morning, and I was like, "I found a thing; what do we think?" And then, critically, from there, I made sure I paired with other folks on the team as we pushed on the implementation. And then, actually, I mentioned Primalize, the library that we're using. We have now since deprecated Primalize within the app because we kept just adding to it so much that eventually, we're like, at this point, should we own this stuff? So we ended up rewriting the core bits of Primalize to better fit our use cases. And now we've actually removed Primalize, wonderful library. I highly recommend it to anyone who has that particular use case but then the additional type generation for the front end. Plus, we have some custom types within our app, Money being the most interesting one. We decided to model Money as our first-class consideration rather than just letting JavaScript have the sole idea of a number. But yes, in a very long-winded way, yes, I'm very sensitive to the thing you described. And I hope, in this case, I did not fall prey to the CTO goes away for the weekend and made a thing. JOËL: I think what I'm hearing is the key difference here is that you got buy-in from the team around this idea before you went out and implemented it. So you're not off doing your own things disconnected from the team and then imposing it from on high. The team already agreed this is the thing we want to do, and then you just did it for them. CHRIS: Largely, yes. Although I will say there are times that each developer on the team, myself included, have sort of gone away, come back with something, and said, "Hey, here's a WIP PR exploring an area." And there was actually...I'm forgetting what the context was, but there was one that happened recently that I introduced. I was like; I had to do this. And the team talked me out of it, and I ended up closing that PR. Someone else actually made a different PR that was an alternative implementation. I was like, no, that's better; we should absolutely do that. And I think that's really healthy. That's a hard thing to maintain but making sure that everyone feels like they've got a strong voice and that we're considering all of the different ways in which we might consider the work. Most critically, you know, how does this impact users at the end of the day? That's always the primary consideration. How do we make sure we build a robust, maintainable, observable system, all those sorts of things? And primarily, this work should go in that other direction, but I also don't want to stifle that creative spark of I got this thing in my head, and I had to explore it. Like, we shouldn't then need to never mind, throw away the work, put it into a ticket. Like, for as long as we can, that more organic, intuitive process if we can retain that, I like that. Critically, with the ability for everyone to tell me, "No, this is a bad idea. Stop it. What are you doing?" And that has happened recently. I mean, they were kinder about it, but they did talk me out of a bad idea. So here we are. JOËL: So you showed up on Monday morning, not with telling everyone, "Hey, I merged this thing over the weekend." You're showing up with a work-in-progress PR. CHRIS: Yes, definitely. I mean, everything goes through a PR, and everything has discussion and conversation around it. That's a strong, strong like Derek Prior's wonderful talk Building a Culture of Code Review. I forget the exact name of it. But it's one of my favorite talks in talking about the utility of code review as a way to share ideas and all of those wonderful things. So everything goes through code review, and particularly anything that is of that more exploratory architectural space. Often we'll say any one review from anyone on the team is sufficient to merge most things but something like that, I would want to say, "Hey, can everybody take a look at this? And if anyone has any reservations, then let's talk about it more." But if I or anyone else on the team for this sort of work gets everybody approving it, then cool, we're good to go. But yeah, code review critical, critical part of the process. JOËL: I'm curious about Primalize, the gem that you mentioned. It sounds like it's some kind of validation layer between some Ruby data structure and your serializers. CHRIS: It is the serializer, but in the process of serializing, it does run-time type validation, essentially. So as it's accessing, you know, you say first name. You have a user object. You pass it in, and you say, "Serializer, there's a first name, and it's a string." It will call the first name method on that user object. And then, it will check that it has the expected type, and if it doesn't, then, in our case, it sends to Sentry. We have configured it...it's actually interesting. In development and test mode, it will raise for a type mismatch, and in production mode, it will alert Sentry so you can configure that differently. But that ends up being really nice because these type mismatches end up being very loud early on. And it's surprisingly easy to maintain and ends up telling us a lot of truths about our system because, really, what we're doing is connecting data from many different systems and flowing it in and out. And all of the inputs and outputs from our system feel very meaningful to lock down in this way. But yeah, it's been an adventure. JOËL: It seems to me there could almost be two sets of types here, the inputs coming into Primalize from your Ruby data structures and then the outputs that are the actual serialized values. And so you might expect, let's say, an integer on the Ruby side, but maybe at the serialization level, you're serializing it to a string. Do you have that sort of conversion step as part of your serializers sometimes, or is the idea that everything's already the right type on the Ruby side, and then we just, like, to JSON it at the end? CHRIS: Yep. Primalize, I think, probably works a little closer to what you're describing. They have the idea of coercions. So within Primalize, there is the concept of a timestamp; that is one of the types that is available. But a timestamp is sort of the union of a date, a time, or I think they might let through a string; I'm not sure if there is as well. But frankly, for us, that was more ambiguity than we wanted or more blurring across the lines. And in the implementation that we've now built, date and time are distinct. And critically, a string is not a valid date or time; it is a string, that's another thing. And so there's a bunch of plumbing within the way you define the serializers. There are override methods so that you can locally within the serializer say, like, oh, we need to coerce from the shape of data into this other shape of data, even little like in-line proc, so we can do it quickly. But the idea is that the data, once it has been passed to the serializer, should be up the right shape. And so when we get to the type assertion part of the library, we expect that things are in the asserted type and will warn if not. We get surprisingly few warnings, which is interesting now. This whole process has made us pay a little more intention, and it's been less arduous simultaneously than I would have expected because like this is kind of a lot of work that I'm describing. And yet it ends up being very natural when you're the developer in context, like, oh, I've been reading these docs for days. I know the shape of this JSON that I'm working with inside and out, and now I'll just write it down in the serializer. It's very easy to do in that moment, and then it captures it and enforces it in such a useful way. As an aside, as I've been looking at this, I'm like, this is just GraphQL, but inside out, I'm pretty sure. But that is a choice that we have made. We didn't want to adopt the whole GraphQL thing. But just for anyone out there who is listening and is thinking, isn't this just GraphQL but inside out? Kind of. Yes. JOËL: I think my favorite part of GraphQL is the schema, which is not really the selling point for GraphQL, you know, like the idea that you can traverse the graph and get any subset of data that you want and all that. I think I would be more than happy with a REST API that has some kind of schema built around it. And someone told me that maybe what I really just want is SOAP, and I don't know how to feel about that comment. CHRIS: You just got to have some XML, and some WSDLs, and other fun things. I've heard people say good things about SOAP. SOAP seems like a fine idea. If anything, I think a critical part of this is we don't have a JSON API. We have a very tightly coupled front end and back end, and a singular front end, frankly. And so that I think naturally...that makes the thing that I'm describing here a much more comfortable fit. If we had multiple different downstream clients that we're trying to consume from the same back end, then I think a GraphQL API or some other structured JSON schema, whatever it is type of API, and associated documentation and typing layer would be probably a better fit. But as I've said many a time on this here, Bike Shed, Inertia is one of my favorite libraries or frameworks (They're probably more of a framework.) one of my favorite technological approaches that I have ever found. And particularly in buildings Sagewell, it has allowed us to move so rapidly the idea that changes are, you know, one fell swoop changes everything within the codebase. We don't have to think about syncing deploys for the back end and the front end and how to coordinate across them. Our app is so much easier to understand by virtue of that architecture that Inertia implies. JOËL: So, if I understand correctly, you don't serialize to JSON as part of the serializers. You're serializing directly to JavaScript. CHRIS: We do serialize to JSON. At the end of the day, Inertia takes care of this on both the Rails side and the client side. There is a JSON API. Like, if you look at the network inspector, you will see XHR requests happening. But critically, we're not doing that. We're not the ones in charge of it. We're not hitting a specific endpoint. It feels as an application coder much closer to a traditional Rails app. It just happens to be that we're writing our view layer. Instead of an ERB, we're writing them in Svelte files. But otherwise, it feels almost identical to a normal traditional Rails app with controllers and the normal routing and all that kind of stuff. JOËL: One thing that's really interesting about JSON as an interchange format is that it is very restrictive. The primitives it has are even narrower than, say, the primitives that Ruby has. So you'd mentioned sending a date through. There is no JSON date. You have to serialize it to some other type, potentially an integer, potentially a string that has a format that the other side knows how it's going to interpret. And I feel like it's those sorts of richer types when we need to pass them through JSON that serialization and deserialization or parsing on the other end become really interesting. CHRIS: Yeah, I definitely agree with that. It was a struggling point for a while until we found this new approach that we're doing with the serializers in the type system. But so far, the only thing that we've done this with is Money. But on the front end, a while ago, we introduced a specific TypeScript type. So it's a phantom type, and I believe I'm getting this correct. It's a phantom type called Cents, C-E-N-T-S. So it represents...I'm going to say an integer. I know that JavaScript doesn't have integers, but logically, it represents an integer amount of cents. And critically, it is not a number, like, the lowercase number in the type system. We cannot add them together. We can't -- JOËL: I thought you were going to say, NaN. CHRIS: [laughs] It is not a number. I saw a n/a for not applicable somewhere in the application the other day. I was like, oh my God, we have a NaN? It happened? But it wasn't, it was just n/a, and I was fine. But yeah, so we have this idea of Cents within the application. We have a money input, which is a special input designed exactly for this. So to a user, it is formatted to look like you're entering dollars and cents. But under the hood, we are bidirectionally converting that to the integer amount of cents that we need. And we strictly, within the type system, those are cents. And you can't do math on Cents unless you use a special set of helper functions. You cannot generate Cents on the fly unless you use a special set of helper functions, the constructor functions. So we've been really restrictive about that, which was kind of annoying because a lot of the data coming from the server is just, you know, numbers. But now, with this type system that we've introduced on the Ruby side, we can assert and enforce that these are money.new on the Ruby side, so using the Money gem. And they come down to the front end as capital C Cents in the type system on the TypeScript side. So we're able to actually bind that together and then enforce proper usage sort of on both sides. The next step that we plan to do after that is dates and times. And those are actually almost weirder because they end up...we just have to sort of say what they are, and they will be ISO 8601 date and time strings, respectively. But we'll have functions that know this is a date string; that's a thing. It is, again, a phantom type implemented within our TypeScript type system. But we will have custom functions that deal with that and really constrain...lock ourselves down to only working with them correctly. And critically, saying that is the only date and time format that we work with; there is no other. We don't have arbitrary dates. Is this a JSON date or something else? I don't know; there are too many date syntaxes. JOËL: I like the idea of what you're doing in that it sounds like you're very much narrowing that sort of window of where in the stack the data exists in the sort of unstructured, free-floating primitives that could be misinterpreted. And so, at this point, it's almost narrowed to the point where it can't be touched by any user or developer-written code because you've pushed the boundaries on the Rails side down and then on the JavaScript side up to the point where the translation here you define translations on one side or, I guess, a parser on one side and a serializer on the other. And they guarantee that everything is good up until that point. CHRIS: Yep, with the added fun of the runtime reflection on the Ruby side. So it's an interesting thing. Like, TypeScript actually has similar things. You can say what the type is all day long, and your code will consistently conform to that asserted type. But at the end of the day, if your JSON API gets in some different data...unless you're using a library like io-ts, is one that I've looked at, which actually does parsing and returns a result object of did we parse to the thing that you wanted or did we get an error in that data structure? So we could get to that level on the client side as well. We haven't done that yet largely because we've essentially pushed that concern up to the Ruby layer. So where we're authoring the data, because we own that, we're going to do it at that level. There are a bunch of benefits of defining it there and then sort of reflecting it down. But yeah, TypeScript, you can absolutely lie to yourself, whereas Elm, a language that I know you love dearly, you cannot lie to yourself in Elm. You've got to tell the truth. It's the only option. You've got to prove it. Whereas in TypeScript, you can just kind of suggest, and TypeScript will be like, all right, cool, I'll make sure you stay honest on that, but I'm not going to make you prove it, which is an interesting sort of set of related trade-offs there. But I think we found a very comfortable resting spot for right now. Although now, we're starting to look at the edges of the Ruby system where data is coming in. So we have lots of webhooks and other external partners that we're integrating with, and they're sending us data. And that data is of varying shapes. Some will send us a payload with the word amount, and it refers to an integer amount of cents because, of course, it does. Some will send us the word amount in their payload, and it will be a floating amount of dollars. And I get a little sad on those days. But critically, our job is to make sure all of those are the same and that we never pass dollars as cents or cents as dollars because that's where things go sad. That is job number one at Sagewell in the engineering team is never get the decimal place wrong in money. JOËL: That would be a pretty terrible mistake to make. CHRIS: It would. I mean, it happens. In fintech, that problem comes up a lot. And again, the fact that...I'm honestly surprised to see situations out there where we're getting in floating point dollars. That is a surprise to me because I thought we had all agreed sort of as a community that it was integer cents but especially in a language that has integers. JavaScript, it's kind of making it up the whole time. But Ruby has integers. JSON, I guess, doesn't have integers, so I'm sort of mixing concerns here, but you get the idea. JOËL: Despite Ruby not having a static type system, I've found that generally, when I'm integrating with a third-party API, I get to the point where I want something that approximates like Elm's JSON decoders or io-ts or something like that. Because JSON is just a big blob of data that could be of any shape, and I don't really trust it because it's third-party data, and you should not trust third parties. And I find that I end up maybe cobbling something together commonly with like a bunch of usage of hash.fetch, things like that. But I feel like Ruby doesn't have a great approach to parsing and composing these validators for external data. CHRIS: Ruby as a language certainly doesn't, and the ecosystem, I would say, is rather limited in terms of the options here. We have looked a bit at the dry-rb stack of gems, so dry-validation and dry-schema, in particular, both offer potentially useful aspects. We've actually done a little bit of spiking internally around that sort of thing of, like, let's parse this incoming data instead of just coercing to hash and saying that it's got probably the shape that we want. And then similarly, I will fetch all day instead of digging because I want to be quite loud when we get it wrong. But we're already using dry-monads. So we have the idea of result types within the system. We can either succeed or fail at certain operations. And I think it's just a little further down the stack. But probably something that we will implement soon is at those external boundaries where data is coming in doing some form of parsing and validation to make sure that it conforms to unknown data structure. And then, within the app, we can do things more cleanly. That also would allow us to, like, let's push the idea that this is floating point dollars all the way out to the edge. And the minute it hits our system, we convert it into a money.new, which means that cents are properly handled. It's the same type of money or dollar, same type of currency handling as everywhere else in the app. And so pushing that to the very edges of our application is a very interesting idea. And so that could happen in the library or sort of a parsing client, I guess, is probably the best way to think about it. So I'm excited to do that at some point. JOËL: Have you read the article, Parse, Don't Validate? CHRIS: I actually posted that in some code review the other day to one of the developers on the team, and they replied, "You're just going to quietly drop one of my favorite articles of all time in code review?" [laughs] So yes, I've read it; I love it. It's a wonderful idea, definitely something that I'm intrigued by. And sort of bringing dry-monads into Ruby, on the one hand, feels like a forced fit and yet has also been one of the other, I think strongest sort of architectural decisions that we've made within the application. There's so much imperative work that we ended up having to do. Send this off to this external API, then tell this other one, then tell this other one. Put the whole thing in a transaction so that our local data properly handles it. And having dry-monads do notation, in particular, to allow us to make that manageable but fail in all the ways it needs to fail, very expressive in its failure modes, that's been great. And then parse, don't validate we don't quite do it yet. But that's one of the dreams of, like, our codebase really should do that thing. We believe in that. So let's get there soon. JOËL: And the core idea behind parse, don't validate is that instead of just having some data that you don't trust, running a check on it and passing that blob of now checked but still untrusted data down to the next person who might also want to check it. Generally, you want to pass it through some sort of filter that will, one, validate that it's correct but then actually typically convert it into some other trusted shape. In Ruby, that might be something like taking an amorphous blob of JSON and turning it into some kind of value object or something like that. And then anybody downstream that receives, let's say, money object can trust that they're dealing with a well-formed money value as opposed to an arbitrary blob of JSON, which hopefully somebody else has validated, but who knows? So I'm going to validate it again. CHRIS: You can tell that I've been out of the podcasting game for a while because I just started responding to yes; I love that blog post without describing the core premise of it. So kudos to you, Joël; you are a fantastic podcast host over there. I will say one of the things you just described is an interesting...it's been a bit of a struggle for us. We keep sort of talking through what's the architecture. How do we want to build this application? What do we care about? What are the things that really matter within this codebase, and then what is all the other stuff? And we've been good at determining the things that really matter, thinking collectively as a group, and I think coming up with some novel, useful, elegant...I'm saying too many positive adjectives for what we're doing. But I've been very happy with sort of the thing that we decide. And then there's the long-tail work of actually propagating that change throughout the rest of the application. We're, like, okay, here's how it works. Every incoming webhook, we now parse and yield a value object. That sentence that you just said a minute ago is exactly what I want. That's like a bunch of work. It's particularly a bunch of work to convert an existing codebase. It's easy to say, okay, from here forward, any new webhooks, payloads that are coming in, we're going to do in this way. But we have a lot of things in our app now that exist in this half-converted way. There was a brief period where we had three different serializer technologies at play. Just this week, I did the work of killing off the middle ground one, the Primalized-based thing, and we now have only our new hotness and then the very old. We were using Blueprinter as the serializer as the initial sort of stub. And so that still exists within the codebase in some places. But trying to figure out how to prioritize that work, the finishing out those maintenance-type conversions is a tricky one. It's never the priority. But it is really nice to have consistency in a codebase. So it's...yeah, do you have any thoughts on that? JOËL: I think going back to the article and what the meaning of parsing is, I used to always think of parsing as taking strings and turning them into something else, and I think this really broadened my perspective on the idea of parsing. And now, I think of it more as converting from a broader type to a narrower type with failures. So, for example, you could go from a string to an integer, and not all strings are valid integers. So you're narrowing the type. And if you have the string hello world, it will fail, and it will give you an error of some type. But you can have multiple layers of that. So maybe you have a string that you parse into an integer, but then, later on, you might want to parse that integer into something else that requires an integer in a range. Let's say it's a percentage. So you have a value object that is a percentage, but it's encoded in the JSON as a string. So that first pass, you parse it from a string into an integer, and then you parse that integer into a percentage object. But if it's outside the range of valid percentage numbers, then maybe you get an error there as well. So it's a thing that can happen at multiple layers. And I've now really connected it with the primitive obsession smell in code. So oftentimes, when you decide, wait, I don't want a primitive here; I want a richer type, commonly, there's going to be a parsing step that should exist to go from that primitive into the richer type. CHRIS: I like that. That was a classic Joël wildly concise summary of a deeply complex technical topic right there. JOËL: It's like I'm going to connect some ideas from functional programming and a classic object-oriented code smell and, yeah, just kind of mash it all together with a popular article. CHRIS: If only you had a diagram. Podcast is not the best medium for diagrams, but I think you could do it. You could speak one out loud, and everyone would be able to see it in their mind's eye. JOËL: So I will tell you what my diagram is for this because I've actually created it already. I imagine this as a sort of like pyramid with different layers that keep getting smaller and smaller. So the size of type is sort of the width of a layer. And so your strings are a very wide layer. Then on top of that, you have a narrower layer that might be, you know, it could be an integer, or you could even if you're parsing JSON, you first start with a string, then you parse that into a Ruby hash, not all strings are valid hashes. So that's going to be narrower. Then you might extract some values out of that hash. But if the keys aren't right, that might also fail. You're trying to pull the user out of it. And so each layer it gets a richer type, but that richer type, by virtue of being richer, is narrower. And as you're trying to move up that pyramid at every step, there is a possibility for a failure. CHRIS: Have you written a blog post about this with said diagram in it? And is that why you have that so readily at hand? [laughs] JOËL: Yes, that is the case. CHRIS: Okay. Yeah, that made sense to me. [laughs] JOËL: We'll make sure to link to it in the show notes. CHRIS: Now you have to link to Joël blog posts, whereas I used to have to link to them [chuckles] in almost every episode of The Bike Shed that I recorded. JOËL: Another thing I've been thinking about in terms of this parsing is that parsing and serializing are, in a sense, almost opposites of each other. Typically, when you're parsing, you're going from a broad type to a narrow one. And when you're serializing, you're going from a narrow type to a broader one. So you might go from a user into a hash into a string. So you're sort of going down that pyramid rather than going up. CHRIS: It is an interesting observation and one that immediately my brain is like, okay, cool. So can we reuse our serializers but just run them in reverse or? And then I try and talk myself out of that because that's a classic don't repeat yourself sort of failure mode of, like, actually, it's fine. You can repeat a little bit. So long as you can repeat and constrain, that's a fine version. But yeah, feels true, though, at the core. JOËL: I think, in some ways, if you want a single source of truth, what you want is a schema, and then you can derive serializers and parsers from that schema. CHRIS: It's interesting because you used the word derive. That has been an interesting evolution at Sagewell. The engineering team seems to be very collected around the idea of explicitness, almost the Zen of Python; explicit is better than implicit. And we are willing to write a lot of words down a lot of times and be happy with that. I think we actually made the explicit choice at one point that we will not implement an automatic camel case conversion in our serializer, even though we could; this is a knowable piece of code. But what we want is the grepability from the front end to the back end to say, like, where's this data coming from? And being able to say, like, it is this data, which is from this serializer, which comes from this object method, and being able to trace that very literally and very explicitly in the code, even though that is definitely the sort of thing that we could derive or automatically infer or have Ruby do that translation for us. And our codebase is more verbose and a little noisier. But I think overall, I've been very happy with it, and I think the team has been very happy. But it is an interesting one because I've seen plenty of teams where it is the exact opposite. Any repeated characters must be destroyed. We must write code to write the code for us. And so it's fun to be working with a team where we seem to be aligned around an approach on that front. JOËL: That example that you gave is really interesting because I feel like a common thing that happens in a serialization layer is also a form of normalization. And so, for example, you might downcase all strings as part of the serialization, definitely, like dates always get written in ISO 8601 format whenever that happens. And so, regardless of how you might have it stored on the Ruby side, by the time it gets to the JSON, it's always in a standard format. And it sounds like you're not necessarily doing that with capitalization. CHRIS: I think the distinction would be the keys and the values, so we are definitely doing normalization on the values side. So ISO 8601 date and time strings, respectively that, is the direction that we plan to go for the value. But then for the key that's associated with that, what is the name for this data, those we're choosing to be explicit and somewhat repetitive, or not even necessarily repetitive, but the idea of, like, it's first_name on the Ruby side, and it's first capital N name camel case, or it's...I forget the name. It's not quite camel case; it's a different one but lower camel, maybe. But whatever JavaScript uses, we try to bias towards that when we're going to the front end. It does get a little tricky coming back into the Ruby side. So our controllers have a bunch of places where they need to know about what I think is called lower camel case, and so we're not perfect there. But that critical distinction between sort of the names for things, and the values for things, transformations, and normalizations on the values, I'm good with that. But we've chosen to go with a much more explicit version for the names of things or the keys in JSON objects specifically. JOËL: One thing that can be interesting if you have a normalization phase in your serializer is that that can mean that your serializer and parsers are not necessarily symmetric. So you might accept malformed data into your parser and parse it correctly. But then you can't guarantee that the data that gets serialized out is going to identically match the data that got parsed in. CHRIS: Yeah, that is interesting. I'm not quite sure of the ramifications, although I feel like there are some. It almost feels like formatting Prettier and things like that where they need to hold on to whitespace in some cases and throw out in others. I'm thinking about how ASTs work. And, I don't know, there's interesting stuff, but, again, not sure of the ramifications. But actually, to flip the tables just a little bit, and that's an aggressive terminology, but we're going to roll with it. To flip the script, let's go with that, Joël; what's been up in your world? You've been hosting this wonderful show. I've listened in to a number of episodes. You're doing a fantastic job. I want to hear a little bit more of what's new in your world, Joël. JOËL: So I've been working on a project that has a lot of flaky tests, and we're trying to figure out the source of that flakiness. It's easy to just dive into, oh, I saw a flaky Test. Let me try to fix it. But we have so much flakiness that I want to go about it a little bit more systematically. And so my first step has actually been gathering data. So I've actually been able to make API requests to our CI server. And the way we figure out flakiness is looking at the commit hash that a particular test suite run has executed on. And if there's more than one CI build for a given commit hash, we know that's probably some kind of flakiness. It could be a legitimate failure that somebody assumed was flakiness, and so they just re-run CI. But the symptom that we are trying to address is the fact that we have a very high level of people re-verifying their code. And so to do that or to figure out some stats, I made a request to the API grouped by commit hash and then was able to get the stats of how many re-verifications there are and even the distribution. The classic way that you would do that is in Ruby; you would use the GroupBy function from enumerable. And then, you would transform values instead of having, like, say; each commit hash then points to all the builds, an array of builds that match that commit hash. You would then thumb those. So now you have commit hashes that point to counts of how many builds there were for that commit hash. Newer versions of Ruby introduced the tally method, which I love, which allows you to basically do all of that in one step. One thing that I found really interesting, though, is that that will then give me a hash of commit hashes that point to the number of builds that are there. If I want to get the distribution for the whole project over the course of, say, the last week, and I want to say, "How many times do people run only one CI run versus running twice in the same commit versus running three times, or four times, or five or six times?" I want to see that distribution of how many times people are rerunning their build. You're effectively doing that tally process twice. So once you have a list of all the builds, you group by hash. You count, and so you end up with that. You have the Ruby hash of commit SHAs pointing to number of times the build was run on that. And then, you again group by the number of builds for each commit SHA. And so now what you have is you'll have something like one, and then that points to an array of SHA one, SHA two, SHA three, SHA four like all the builds. And then you tally that again, or you transform values, or however, you end up doing it. And what you end up with is saying for running only once, I now have 200 builds that ran only once. For running twice in the same commit SHA, there are 15. For running three times, there are two. For running four times, there is one. And now I've got my distribution broken down by how many times it was run. It took me a while to work through all of that. But now the shortcut in my head is going to be you double tally to get distribution. CHRIS: As an aside, the whole everything you're talking about is interesting and getting to that distribution. I feel like I've tried to solve that problem on data recently and struggled with it. But particularly tally, I just want to spend a minute because tally is such a fantastic addition to the Ruby standard library. I used to have in sort of like loose muscle memory transform value is grouped by ampersand itself, transform values count, sort, reverse to H. That whole string of nonsense gets replaced by tally, and, oof, what a beautiful example of Ruby, and enumerable, and all of the wonder that you can encapsulate there. JOËL: Enumerable is one of the best parts of Ruby. I love it so much. It was one of the first things that just blew my mind about Ruby when I started. I came from a PHP, C++ background and was used to writing for loops for everything and not the nice for each loops that a lot of languages have these days. You're writing like a legit for or while loop, and you're managing the indexes yourself. And there's so much room for things to go wrong. And being introduced to each blew my mind. And I was like, this is so beautiful. I'm not dealing with indexes. I'm not dealing with the raw implementation of the array. I can just say do a thing for each element. This is amazing. And that is when I truly fell in love with Ruby. CHRIS: I want to say I came from Python, most recently before Ruby. And Python has pretty nice list comprehensions and, in fact, in some ways, features that enumerable doesn't have. But, still, coming to Ruby, I was like, oh, this enumerable; this is cool. This is something. And it's only gotten better. It still keeps growing, and the idea of custom enumerables. And yeah, there's some real neat stuff in there. JOËL: I'm going to be speaking at RubyConf Mini this fall in November, and my talk is all about Enumerators and ranges in enumerable and ways you can use those to make the APIs of the objects that you create delightful for other people to use. CHRIS: That sounds like a classic Joël talk right there that I will be happy to listen to when it comes out. A very quick related, a semi-related aside, so, tally, beautiful addition to the Ruby language. On the Rails side, there was one that I used recently, which is where.missing. Have you seen where.missing? JOËL: I have not heard of this. CHRIS: So where.missing is fantastic. Let's assume you've got two related objects, so you've got like a has many blah, so like a user has many posts. I think you can...if I'm remembering it correctly, it's User.where.missing(:posts). So it's where dot missing and then parentheses the symbol posts. And under the hood, Rails will do the whole LEFT OUTER JOIN where the count is null, et cetera. It turns into this wildly complex SQL query or understandably complex, but there's a lot going on there. And yet it compresses down so elegantly into this nice, little ActiveRecord bit. So where.missing is my new favorite addition into the Rails landscape to complement tally on the Ruby side, which I think tally is Ruby 2.7, I want to say. So it's been around for a while. And where.missing might be a Ruby 7 feature. It might be a six-something, but still, wonderful features, ever-evolving these tool sets that we use. JOËL: One of the really nice things about enumerable and family is the fact that they build on a very small amount of primitives, and so as long as you basically understand blocks, you can use enumerable and anything in there. It's not special syntax that you have to memorize. It's just regular functions and blocks. Well, Chris, thank you so much for coming back for a visit. It's been a pleasure. And it's always good to have you share the cool things that you're doing at Sagewell. CHRIS: Well, thank you so much, Joël. It's been an absolute pleasure getting to come back to this whole Bike Shed. And, again, just to add a note here, you're doing a really fantastic job with the show. It's been interesting transitioning back into listener mode for the show. Weirdly, I wasn't listening when I was a host. But now I've regained the ability to listen to The Bike Shed and really enjoy the episodes that you've been doing and the wonderful spectrum of guests that you've had on and variety of topics. So, yeah, thank you for hosting this whole Bike Shed. It's been great. JOËL: And with that, let's wrap up. The show notes for this episode can be found at bikeshed.fm. This show is produced and edited by Mandy Moore. If you enjoyed listening, one really easy way to support the show is to leave us a quick rating or even a review in iTunes. It really helps other folks find the show. If you have any feedback, you can reach us at @_bikeshed, or reach me at @joelquen on Twitter, or at hosts@bikeshed.fm via email. Thank you so much for listening to The Bike Shed, and we'll see you next week. Byeeeeeeeeeee!!!!!!!! ANNOUNCER: This podcast was brought to you by thoughtbot. thoughtbot is your expert design and development partner. Let's make your product and team a success.

A Score To Settle
ASTS 048: Listening To... Music for ”Predator” and ”Prey”

A Score To Settle

Play Episode Listen Later Sep 18, 2022 95:49


Welcome back to the podcast! In this episode, I present and examine the music composed for the PREDATOR film franchise, from the 1987 original through to the latest installment, PREY, released via the streaming service Hulu in August 2022. My goal is to identify the themes, motifs, instrumentation and approach applied by composer Alan Silvestri (BACK TO THE FUTURE, MOUSE HUNT, THE AVENGERS) to PREDATOR (1987) & PREDATOR 2 (1990) and how this symphonic model was subsequently interpreted in the sequels and spin-offs (or not). Later, PREY eschews much of the previous musical language and charts new sonic territory, with a subtle nod to Silvestri. Additional composers represented in this pulse-pounding episode include John Debney, Brian Tyler, Henry Jackman, Harald Kloser and Sarah Schachner.    Title playtime index: PREDATOR - 00:00:00 PREDATOR 2 - 00:26:25 ALIEN VS PREDATOR - 00:37:10 ALIENS VS PREDATOR: REQUIEM - 00:44:36 PREDATORS - 00:51:52 THE PREDATOR - 1:04:48 PREY - 1:19:23   Stay safe out there, take care of yourself and each other!    Connect with the podcast on Facebook and Twitter: www.facebook.com/ascoretosettle https://twitter.com/score2settlepod   Email the show at ascoretosettlepodcast@gmail.com  

A Score To Settle
ASTS 047: Now Playing... ”The Batman”, ”Death On The Nile”, ”The King's Man” and more!

A Score To Settle

Play Episode Listen Later Jun 27, 2022 70:30


Welcome, everyone, to the next episode of the podcast! In this episode, I revisit a sub-series of the show called "Now Playing", during which I showcase recent soundtrack albums to which I've been listening. This can include music for both current film releases and classic scores newly issued on album. Below are the titles (and artists) that I present, mostly from the end of last year and the first half of 2022:   VENOM: LET THERE BE CARNAGE - Marco Beltrami ARMY OF THIEVES - Hans Zimmer & Steve Mazzaro THE KING'S MAN - Matthew Margeson & Dominic Lewis DEATH ON THE NILE (2022) - Patrick Doyle UNCHARTED - Ramin Djawadi DOCTOR STRANGE IN THE MULTIVERSE OF MADNESS - Danny Elfman THE BATMAN & JURASSIC WORLD: DOMINION - Michael Giacchino TOP GUN: MAVERICK - Harold Faltermeyer, Lady Gaga, Hans Zimmer & Lorne Balfe FIRESTARTER (1984) - Tangerine Dream   Stay safe out there, take care of yourself and each other!    Connect with the podcast on Facebook and Twitter: www.facebook.com/ascoretosettle https://twitter.com/score2settlepod   Email the show at ascoretosettlepodcast@gmail.com

A Score To Settle
ASTS 046: The Evolving Sound of Science Fiction Cinema, Part 6-The 1980's, cont.

A Score To Settle

Play Episode Listen Later Apr 24, 2022 98:50


Hello again and welcome back to the podcast! In this somewhat "super-sized" installment of my multi-part trek through the music of Science Fiction cinema, I attempt to close out the decade of the 1980's. The previous installment in this series focused on titles from the years 1980-82. Here, I cover the remaining years of the decade with examples of the competing and sometimes collaborative film music trends - pop & electronic and orchestral.    The 80's were a peak time of musical surprises, somewhat akin to the 1960's when we heard a mix of traditional orchestral scores, jazz, pop & rock-based colors as well as avant garde music derived from concert techniques. Following its revival, the large scale orchestral approach continued reigning over much of cinematic Science Fiction, now bolstered by electronic and choral elements. Parallel to this were the experiments in synth and pop styles, connecting the genre to present day (for the time) musical trends. To help identify these unique sonic qualities, I'll sample music from TERMINATOR (Brad Fiedel), 2010 (David Shire), ENEMY MINE (Maurice Jarre), KRULL (James Horner), SPACEHUNTER: ADVENTURES IN THE FORBIDDEN ZONE (Elmer Bernstein) and THE ABYSS (Alan Silvestri), amid more!   Stay safe out there, take care of yourself and each other!    Connect with the podcast on Facebook and Twitter: www.facebook.com/ascoretosettle https://twitter.com/score2settlepod   Email the show at ascoretosettlepodcast@gmail.com  

New Books Network
Hannah Star Rogers, "Routledge Handbook of Art, Science, and Technology Studies" (Routledge, 2021))

New Books Network

Play Episode Listen Later Mar 30, 2022 46:17


I spoke with Hannah Star Rogers, one of the editors of the Routledge Handbook of Art, Science, and Technology Studies (Routledge, 2021). Art and science work is experiencing a dramatic rise coincident with burgeoning Science and Technology Studies (STS) interest in this area. Science has played the role of muse for the arts, inspiring imaginative reconfigurations of scientific themes and exploring their cultural resonance. Conversely, the arts are often deployed in the service of science communication, illustration, and popularization. STS scholars have sought to resist the instrumentalization of the arts by the sciences, emphasizing studies of theories and practices across disciplines and the distinctive and complementary contributions of each. The manifestation of this commonality of creative and epistemic practices is the emergence of Art, Science, and Technology Studies (ASTS) as the interdisciplinary exploration of art–science. This handbook defines the modes, practices, crucial literature, and research interests of this emerging field. It explores the questions, methodologies, and theoretical implications of scholarship and practice that arise at the intersection of art and STS. Further, ASTS demonstrates how the arts are intervening in STS. Drawing on methods and concepts derived from STS and allied fields including visual studies, performance studies, design studies, science communication, and aesthetics, and the knowledge of practicing artists and curators, ASTS is predicated on the capacity to see both art and science as constructions of human knowledge-making. Accordingly, it posits a new analytical vernacular, enabling new ways of seeing, understanding, and thinking critically about the world. This book provides scholars and practitioners already familiar with the themes and tensions of art–science with a means of connecting across disciplines. It proposes organizing principles for thinking about art–science across the sciences, social sciences, humanities, and arts. Encounters with art and science become meaningful in relation to practices and materials manifest as perceptual habits, background knowledge, and cultural norms. As the chapters in this book demonstrate, a variety of STS tools can be brought to bear on art–science so that systematic research can be conducted on this unique set of knowledge-making practices. Hannah Star Rogers is Visiting Scholar at the University of Edinburgh in Science, Technology, and Innovation Studies (STIS) and lead editor of the Routledge Handbook of Art, Science, and Technology Studies. Frances Sacks is a journalist and graduate of Wesleyan University, where she studied in the Science and Society Program. She is also a drummer who has studied Gamelan in Bali, Berber in Morocco, and most traditional Ga patterns with master drummers in Ghana. Learn more about your ad choices. Visit megaphone.fm/adchoices Support our show by becoming a premium member! https://newbooksnetwork.supportingcast.fm/new-books-network

Highly Melanated Podcast
Open Wider: A Deeper Look Into Healthcare In Our Community

Highly Melanated Podcast

Play Episode Listen Later Mar 9, 2022 92:06


In this episode we are joined with Daryle BlackstockMr. Blackstock is a Certified Clinical Transplant Coordinator (CCTC) and currently serving as the Director of Clinical Transplant Operations at New York-Presbyterian Hospital, Columbia University Medical Center, Morgan Stanley Children's Hospital, and Weill Cornell Medical College.  He previously served as the Chief Transplant Physician Assistant and is an established Surgical Physician Assistant and has vast experiences in solid organ transplantation, including lung, liver, intestinal, kidney, and pancreas.  He is a member of many professional organizations and serves in several volunteer leadership positions. He is a Distinguished Fellow of the American Academy of Physician Assistants (DFAAPA).  He is a member of Allied Health Professionals of the American Society of Transplantation (AST). He is currently serving as the Secretary/Treasurer for the American Board of Transplant Certification (ABTC).  He is currently serving on the Advanced Transplant Professional Committee for the American Society of Transplant Surgery (AST).  Mr. Blackstock is an avid educator and the recipient of ASTS' Sherilyn Gordon Memorial Award, which recognized transplant professionals who exemplify transplant education achievements.  He is a Distinguished Fellow of the American Academy of Physician Assistants (DFAAPA).  He remains very active in local community service initiatives and participates in international medical mission trips.