POPULARITY
Categories
Is rewriting your native app really the only way to go cross-platform? In this Coffee Talk episode, we explore how React Native Brownfield offers a smarter path forward. Łukasz Chludziński invites Oskar Kwaśniewski and Burak Güner—who work directly on React Native Core and brownfield tooling—to discuss how recent advances in React Native have made brownfield integration far more viable, stable, and scalable. You'll learn: ➡️ Why brownfield isn't what it used to be (goodbye, brittle bridging) ➡️ How `RootViewFactory` and `ReactNativeFactory` APIs simplify setup ➡️ What's new in React Native Brownfield 1.0.0 ➡️ How to keep your architecture clean while integrating React Native ➡️ What this means for modern native stacks like SwiftUI, Jetpack Compose—and future-facing platforms like visionOS Whether you're maintaining a legacy app or building for what's next, this episode gives you a blueprint for hybrid success. Explore React Native Brownfield
Apologies for the hiatus! Dave needed some time off to recover from burnout, and these episodes remained in the can. Thanks for Waiting for us
Bienvenue dans le deux-cent-quatre-vingt-douzième épisode de CacaoCast! Dans cet épisode, Philippe Casgrain et Philippe Guitard discutent des sujets suivants: UIScene - Vos applications UIKit devront l'adopter Empreinte carbone ChatGPT - D'autres calculs plus conservateurs IA et O'Reilly - La fin de la programmation comme on la connaît? L'IA est le futur - Ne soyez pas en reste Jot - Pour faire des tokens JWT en Swift avec CryptoKit mobygratis - Plus de 500 pistes pour vos projets Ecoutez cet épisode
Esta semana esto va de energía, con dos historias increibles. Pedro Aznar (https://www.instagram.com/pedroaznar/) charla con Alberto Luis (https://x.com/SwiftyAlbert) y Juan Rodríguez (https://x.com/liebana_jr), dos desarrolladores españoles seleccionados por Apple para asistir a la WWDC25 en Cupertino. Sobre sus inicios en la programación, que son curiosísimos: Juan participó incluso en las olimpiadas de Rio en 2016 representando a España y Alberto es realmente ortodoncista y autodidacta en la creación de apps. También sobre la creación de sus aplicaciones y cómo han combinado sus pasiones con la tecnología. Comparten anécdotas del reciente apagón, expectativas sobre el evento en Apple Park, y reflexionan sobre el futuro del desarrollo en el ecosistema Apple, especialmente con SwiftUI, iPadOS y Apple Intelligence. Las Charlas de Applesfera es el podcast del equipo de Applesfera, donde se trata el gran tema de la semana y su contexto - contado por los expertos que te acompañan en el mundo Apple desde 2006. ✉️ Contacta con el director, Pedro Aznar, en pedroaznar@applesfera.com X: https://x.com/applesfera Instagram: https://instagram.com/applesfera YouTube: https://youtube.com/applesfera Mastodon: https://mastodon.social/@applesfera ❤️ ¡Gracias por escuchar y apoyar este podcast! ⭐️⭐️⭐️⭐️⭐️
Join us for another episode where we cover our slightly unusual rollout of Swift 6.1 support on the Swift Package Index, the Swift Fundraising cooperative, the multiple fabulous projects written by Kashikawa Katsumi, and of course, give our regular package picks.NewsThe Swift Fundraising CooperativeKashikawa KatsumiSwiftRegex.comSwift AST ExplorerPackagesHasLazyServer by southkinswift-play-experimental by AppleTextReplacements by Daniel Saidiswift-snapshot-testing-macros by Adam Carterswift-snapshot-testing by Point-FreeSwiftTitleCase by Yilei Yang
Bienvenue dans le deux-cent-quatre-vingt-onzième épisode de CacaoCast! Dans cet épisode, Philippe Casgrain et Philippe Guitard discutent des sujets suivants: WWDC25 - Du 9 au 13 juin! GoSSL - Une alternative européenne à LetsEncrypt TextReplacements - Pour personnaliser du texte en SwiftUI Curseur texte - Il vous dérange? On peut le désactiver Tumult - Un plugin zsh avec plein de petits scripts utiles Unwatched - Un lecteur YouTube en code-source libre The Egg - Une historiette d'Andy Weir Ecoutez cet épisode
In questa puntata di "Techno Pillz", Alex Raccuglia si concede un'introspezione personale e professionale, condividendo le sue recenti difficoltà emotive e lavorative. Tra la creazione di un'app e il confronto con i feedback degli americani, Alex apre il suo cuore, raccontando le sfide legate all'innovazione tecnologica e all'intelligenza artificiale, riflettendo su come il processo di sviluppo possa influenzare il suo benessere. Non mancano le considerazioni sulla programmazione, il lavoro in team e le frustrazioni legate a soluzioni "facili" proposte dall'AI.
Join us as we chat about enabling parallelising our tests with Swift Testing, what your plan should be for any CocoaPods projects you still work on, more thoughts on open-source funding based on a recently published paper, and of course the usual package picks!NewsMastodon Post: The Value of Open Source SoftwarePaper: The Value of Open Source SoftwareCocoaPods Trunk Read-only PlanPackagesCodable by Andrii ChernenkoThe future of serialisation & deserialisationAestheticText by Kyle BashourRTSanStandaloneSwift by Josip ĆavarTime to Get Real – Introducing RealtimeSanitizer for SwiftClang RealtimeSanitizerswift-file by Jihoon AhnRenderMeThis by AetherGlowGetter by Aether
Bunn conta como desenvolveu os novos widgets do DuckDuckGo e Rambo ressuscita uma tecnologia da época do NeXTSTEP.
Luc-Olivier describes how to represent navigation as state in iOS app development.Related LinksHomework for the next episode: Noclip's Final Fantasy XIV documentary seriesFU: Aide à l'achat d'une auto électrique : Tesla soumet 8653 demandes de subvention en 72 h | Radio-CanadaFU: Christine Lemmer-Webber's thread on ATProto scaling downFU: YouTube/Mike Rxqe: The Call of Duty SBMM Situation is Crazy...FU: YouTube/Insider Gaming: Meet The Creator Behind Call of Duty Skill-Based MatchmakingFU: aniDB: Bartender: Kami no GlassGitHub - pointfreeco/swift-navigation: Bringing simple and powerful navigation tools to all Swift platforms, inspired by SwiftUI.
‘Networking' is a word to strike fear into the heart of any developer, and upsettingly we're dealing with both types this episodes: talking to other humans at conferences, but mostly trying to coax computers to talk to each other too.Plus, our Open Ballot this episode is the trifling little matter of the major changes you're hoping to see in Xcode, SwiftUI, SwiftData and more as WWDC25 rolls around.Essential links from the episode:Apple Intelligence delayOriginal announcement: https://daringfireball.net/2025/03/apple_is_delaying_the_more_personalized_siri_apple_intelligence_featuresGruber's rant: https://daringfireball.net/2025/03/something_is_rotten_in_the_state_of_cupertinoApple introduces age-checking systems https://techcrunch.com/2025/02/27/apple-introduces-new-child-safety-initiatives-including-an-age-checking-system-for-apps/Testing Workgroup https://www.swift.org/testing-workgroup/Conferences:Swift Heroes (8–9 April): https://swiftheroes.com/2025/try! Swift Tokyo (9–11 April): https://tryswift.jp/Conference organizers: we'd love to feature more events here on a regular basis. Get in touch with us when early bird tickets go on sale, or when you announce speakers or something else, and we'll do our best to feature you!
Bienvenue dans le deux-cent-quatre-vingt-dixième épisode de CacaoCast! Dans cet épisode, Philippe Casgrain et Philippe Guitard discutent des sujets suivants: Nouveaux Macs - Mac Studio M4 Max & M3 Ultra + Macbook Air M4 Swift-build - Maintenant en code-source libre Cmd-Maj-O - Fonctionne sur les sites en DocC Jellyfin - Maintenant sur iOS Ecoutez cet épisode
David Ginsburg of In Touch with iOS podcast joins Marty and Eric to talk about Apple Intelligence failures and spatial head-banging with the Metallica concert video on Apple Vision Pro Security UpdatevisionOs 2.3.2 Update for Apple Vision Pro Enhances Security and Fixes Streaming Issueshttps://www.macobserver.com/news/visionos-2-3-2-update-for-apple-vision-pro-enhances-security-and-fixes-streaming-issues visionOS 2.3.2 Now Available, Brings Streaming Playback Fixhttps://www.mactrast.com/2025/03/visionos-2-3-2-now-available-brings-streaming-playback-fix/ This Week BetaVision OS 2.4 beta 4 out today! 2025-03-17 visionOS 2.4 beta 4 (22O5231a)Apple releases visionOS 2.4 beta 4 with watchOS 11.4, tvOS 18.4https://9to5mac.com/2025/03/17/apple-releases-visionos-24-beta-4-plus-watchos-114-tvos-184-more/ Release notes from Applehttps://developer.apple.com/documentation/visionos-release-notes/visionos-2_4-release-notes Summary of What's NewMostly bug fixes across SwiftUI, RealityKit, and Simulator.Refinements to StoreKit APIs, including platform restructuring.Expanded details on Spatial Gallery and libxml2 deprecations.No major new features or breaking changes—mostly stability improvements.APPLE INTELLIGENCECalls for Tim Cook's resignation over Apple Intelligence miss that he has made Apple what it ishttps://appleinsider.com/articles/25/03/14/calls-for-tim-cooks-resignation-over-apple-intelligence-miss-that-he-has-made-apple-what-it-is METALLICAApple Vision Pro users can check out a short, immersive Metallica concert film this weekhttps://www.engadget.com/entertainment/music/apple-vision-pro-users-can-check-out-a-short-immersive-metallica-concert-film-this-week-162611039.html Apple and Metallica Bring the M72 World Tour to the Vision Prohttps://www.idropnews.com/news/apple-and-metallic-bring-the-m72-world-tour-to-the-vision-pro/241884/ Apple unveils immersive concert experience with Metallica for Apple Vision Prohttps://macdailynews.com/2025/03/12/apple-unveils-immersive-concert-experience-with-metallica-for-apple-vision-pro/ Immersive Concert Experience With Metallica Coming to Apple Vision Prohttps://www.mactrast.com/2025/03/immersive-concert-experience-with-metallica-coming-to-apple-vision-pro/ Metallica immersive video puts Vision Pro owners front and centerhttps://www.cultofmac.com/news/metallica-immersive-video-vision-pro Apple unveils immersive concert experience with Metallica for Apple Vision Prohttps://www.apple.com/newsroom/2025/03/apple-unveils-immersive-concert-experience-with-metallica-for-apple-vision-pro/ ApplicationsDavid _ Cisco adds AirPlay & Vision Pro support to Microsoft Teams Roomshttps://appleinsider.com/articles/25/03/17/cisco-adds-airplay-vision-pro-support-to-microsoft-teams-rooms My friend sent me this, Physics teacher uses VisionPro to demonstrate physics exam question and how atoms move in 3D (Using AirDraw)https://www.reddit.com/r/VisionPro/comments/1j808dd/my_friend_sent_me_this_physics_teacher_uses/?rdt=49906 MediaCool videos are coming to AVP - Erichttps://www.reddit.com/r/VisionPro/comments/1j8su04/cool_videos_are_coming_to_avp/ NEW APPS WORTH MENTIONINGRunestonehttps://apps.apple.com/us/app/runestone-text-editor/id1548193893Linkeeper https://apps.apple.com/us/app/linkeeper/id6449708232 Lowe's Style Studio https://apps.apple.com/us/app/lowes-style-studio/id6472232397 In Touch With iOShttps://intouchwithios.com/ ThePodTalk.Net
Natalia Panferova former Apple engineer of Nil Coalescing comes on to talk her new book SwiftUI Fundamentals.GuestNil CoalescingNatalia Panferova (@natpanferova) / XNatalia Panferova (@natpanferova@mastodon.social) - MastodonNatalia Panferova (@natpanferova.bsky.social) — BlueskyNatalia Panferova | LinkedInAnnouncementsJoin Bushel BetaJoin our Patreon!Newsletters | BrightDigitLinksSwiftUI FundamentalsNil Coalescing BooksNil Coalescing - BlogRelated EpisodesThe Great SwiftUI Migration - Part 2 with Ben ScheirmanThe Great SwiftUI Migration - Part 1 with Ben ScheirmanSwiftUI Field Guide with Chris EidhofSwiftUI Tips and Tricks with Craig ClaytonBehind the Scenes of SwiftUI with Aviel GrossThe Composable Architecture with Zev EisenbergWWDC 2022 - SwiftUI and UIKit with Evan StoneSocial MediaEmailleo@brightdigit.comGitHub - @brightdigitTwitter BrightDigit - @brightdigitLeo - @leogdionLinkedInBrightDigitLeoPatreon - brightdigitCreditsMusic from https://filmmusic.io"Blippy Trance" by Kevin MacLeod (https://incompetech.com)License: CC BY (http://creativecommons.org/licenses/by/4.0/) (00:00) - Natalia's Background and SwiftUI Book (04:48) - SwiftUI "Pet Peeves" (13:57) - Natalia's Journey (15:34) - SwiftUI and macOS Thanks to our monthly supporters Tomáš Slíž Maurizio Bracchitta Edward Sanchez Satoshi Mitsumori Steven Lipton ★ Support this podcast on Patreon ★
Join us as we chat about the Swift team joining Bluesky and Mastodon, data race safety numbers on Swift Package Index Package pages, Swift on Raspberry Pi, and of course our usual package picks!NewsSwiftlang: Social media expansion to Mastodon and BlueskyBluesky accountMastodon accountLeverage by Matt MassicotteIssue: Ready for Swift 6 false positivesIssue: False positives reported in Sema.NumSwift6Errors via -stats-output-dirhttps://swifttoolkit.dev/posts/r-pi by Natan Rolnik, assisted by Jesse ZamoraPackagesAtRandom by Robb Böhnkesharing-grdb by Pointfreeswift-sharing by PointfreeGRDB by Gwendal RouévisualizeTouches by Robb Böhnkeamplify-ui-swift-liveness by aws-amplifySpices by Simon Støvring
This week we talk about: Daniel's company TelemetryDeck scored a major award for their work in privacy and data security—a huge deal, that caught them a little by surprise! Daniel has setup a project with the Galactic Unicorn Gauge, showing server performance in real-time ✨ Cool gadgets... AirTag cards for your wallet
Rambo e Bunn discutem os principais problemas que ainda enfrentam com SwiftUI.
Bienvenue dans le deux-cent-quatre-vingt-neuvième épisode de CacaoCast! Dans cet épisode, Philippe Casgrain et Philippe Guitard discutent des sujets suivants: Fireside Cocoa - Les impressions de Philippe iPhone 16e - Le moins cher des iPhones? MapleScan - Fait au Canada Alternatives UE - Cherchez-vous une alternative à l'hégémonie américaine? Spices - Créez des vues de débogage en SwiftUI Arm64-to-sim - Pour les frameworks récalcitrants Astuce Finder - Renommer plusieurs fichiers simultanément BusySimulator - Faites semblant d'être occupé Astuce IA - Le mot en F toujours utile Ecoutez cet épisode
Join us for our first episode in 2025 with news of a community Swift on Android working group, the announcement of swift-build at FOSDEM, a discussion of making open source funding easier, how to get feedback on Swift Evolution proposals from people outside the Swift forums, and of course our usual package picks!NewsSwift on Android Working GroupThe Next Chapter in Swift Build TechnologiesOpen Source Swift fundraisingswift.algora.ioPitch: Last expression as return valuePackagesZip by Tomas Franzénswift-zip-archive by Adam FowlerForked by Drew McCormackSkinSmoothingFilter by shimanumerix by Gavin Wiggins
Bienvenue dans le deux-cent-quatre-vingt-huitième épisode de CacaoCast! Dans cet épisode, Philippe Casgrain et Philippe Guitard discutent des sujets suivants: Bambu Lab - La controverse CotEditor - Éditeur en code source AppIconKit - Pour que vos utilisateurs changent l'icône de votre application AutoDock - Cachez votre dock en fonction de la taille de vos écrans Swift concurrency - Un glossaire Ecoutez cet épisode
Subscriber-Only: Today's episode is available only to subscribers. If you are a Point-Free subscriber you can access your private podcast feed by visiting https://www.pointfree.co/account. --- Let's leverage our new `@Shared` SQLite strategy by adding a brand new feature: archiving. We will see how easy it is to incorporate queries directly into a SwiftUI view, and we will expand our tools to support even more kinds of queries.
Arnaud et Emmanuel discutent des versions Java, font un résumé de l'ecosystème WebAssembly, discutent du nouveau Model Context Protocol, parlent d'observabilité avec notamment les Wide Events et de pleins d'autres choses encore. Enregistré le 17 janvier 2025 Téléchargement de l'épisode LesCastCodeurs-Episode–321.mp3 ou en vidéo sur YouTube. News Langages java trend par InfoQ https://www.infoq.com/articles/java-trends-report–2024/ Java 17 finalement depasse 11 et 8 ~30/33% Java 21 est à 1.4% commonhaus apparait GraalVM en early majority Spring AI et langchain4j en innovateurs SB 3 voit son adoption augmenter Un bon résumé sur WebAssembly, les différentes specs comme WASM GC, WASI, WIT, etc https://2ality.com/2025/01/webassembly-language-ecosystem.html WebAssembly (Wasm) est un format d'instructions binaires pour une machine virtuelle basée sur une pile, permettant la portabilité et l'efficacité du code. Wasm a évolué à partir d'asm.js, un sous-ensemble de JavaScript qui pouvait fonctionner à des vitesses proches de celles natives. WASI (WebAssembly System Interface) permet à Wasm de fonctionner en dehors des navigateurs Web, fournissant des API pour le système de fichiers, CLI, HTTP, etc. Le modèle de composant WebAssembly permet l'interopérabilité entre les langages Wasm à l'aide de WIT (Wasm Interface Type) et d'ABI canonique. Les composants Wasm se composent d'un module central et d'interfaces WIT pour les importations/exportations, facilitant l'interaction indépendante du langage. Les interfaces WIT décrivent les types et les fonctions, tandis que les mondes WIT définissent les capacités et les besoins d'un composant (importations/exportations). La gestion des packages Wasm est assurée par Warg, un protocole pour les registres de packages Wasm. Une enquête a montré que Rust est le langage Wasm le plus utilisé, suivi de Kotlin et de C++; de nombreux autres langages sont également en train d'émerger. Un algorithme de comptage a taille limitée ne mémoire a été inventé https://www.quantamagazine.org/computer-scientists-invent-an-efficient-new-way-to-count–20240516/ élimine un mot de manière aléatoire mais avec une probabilité connue quand il y a besoin de récupérer de l'espace cela se fait par round et on augmente la probabilité de suppression à chaque round donc au final, ne nombre de mots / la probabilité d'avoir été éliminé donne une mesure approximative mais plutot précise Librairies Les contributions Spring passent du CLA au DCO https://spring.io/blog/2025/01/06/hello-dco-goodbye-cla-simplifying-contributions-to-spring d'abord manuel amis meme automatisé le CLA est une document legal complexe qui peut limiter les contribuitions le DCO vient le Linux je crois et est super simple accord que la licence de la conmtrib est celle du projet accord que le code est public et distribué en perpetuité s'appuie sur les -s de git pour le sign off Ecrire un serveur MCP en Quarkus https://quarkus.io/blog/mcp-server/ MCP est un protocol proposé paor Antropic pour integrer des outils orchestrables par les LLMs MCP est frais et va plus loin que les outils offre la notion de resource (file), de functions (tools), et de proimpts pre-built pour appeler l'outil de la meilleure façon On en reparlera a pres avec les agent dans un article suivant il y a une extension Quarkus pour simplifier le codage un article plus detaillé sur l'integration Quarkus https://quarkus.io/blog/quarkus-langchain4j-mcp/ GreenMail un mini mail server en java https://greenmail-mail-test.github.io/greenmail/#features-api Utile pour les tests d'integration Supporte SMTP, POP3 et IMAP avec TLS/SSL Propose des integrations JUnit, Spring Une mini UI et des APIs REST permettent d'interagir avec le serveur si par exemple vous le partagé dans un container (il n'y a pas d'integration TestContainer existante mais elle n'est pas compliquée à écrire) Infrastructure Docker Bake in a visual way https://dev.to/aurelievache/understanding-docker-part–47-docker-bake–4p05 docker back propose d'utiliser des fichiers de configuration (format HCL) pour lancer ses builds d'images et docker compose en gros voyez ce DSL comme un Makefile très simplifié pour les commandes docker qui souvent peuvent avoir un peu trop de paramètres Datadog continue de s'etendre avec l'acquisition de Quickwit https://www.datadoghq.com/blog/datadog-acquires-quickwit/ Solution open-source de recherche des logs qui peut être déployée on-premise et dans le cloud https://quickwit.io/ Les logs ne quittent plus votre environment ce qui permet de répondre à des besoins de sécurité, privacy et réglementaire Web 33 concepts en javascript https://github.com/leonardomso/33-js-concepts Call Stack, Primitive Types, Value Types and Reference Types, Implicit, Explicit, Nominal, Structuring and Duck Typing, == vs === vs typeof, Function Scope, Block Scope and Lexical Scope, Expression vs Statement, IIFE, Modules and Namespaces, Message Queue and Event Loop, setTimeout, setInterval and requestAnimationFrame, JavaScript Engines, Bitwise Operators, Type Arrays and Array Buffers, DOM and Layout Trees, Factories and Classes, this, call, apply and bind, new, Constructor, instanceof and Instances, Prototype Inheritance and Prototype Chain, Object.create and Object.assign, map, reduce, filter, Pure Functions, Side Effects, State Mutation and Event Propagation, Closures, High Order Functions, Recursion, Collections and Generators, Promises, async/await, Data Structures, Expensive Operation and Big O Notation, Algorithms, Inheritance, Polymorphism and Code Reuse, Design Patterns, Partial Applications, Currying, Compose and Pipe, Clean Code Data et Intelligence Artificielle Phi 4 et les small language models https://techcommunity.microsoft.com/blog/aiplatformblog/introducing-phi–4-microsoft%e2%80%99s-newest-small-language-model-specializing-in-comple/4357090 Phi 4 un SML pour les usages locaux notamment 14B de parametres belle progression de ~20 points sur un score aggregé et qui le rapproche de Llama 3.3 et ses 70B de parametres bon en math (data set synthétique) Comment utiliser Gemini 2.0 Flash Thinking (le modèle de Google qui fait du raisonnement à la sauce chain of thought) en Java avec LangChain4j https://glaforge.dev/posts/2024/12/20/lets-think-with-gemini–2-thinking-mode-and-langchain4j/ Google a sorti Gemini 2.0 Flash, un petit modèle de la famille Gemini the “thinking mode” simule les cheminements de pensée (Chain of thoughts etc) décompose beaucoup plus les taches coplexes en plusiewurs taches un exemple est montré sur le modele se battant avec le probleme Les recommendations d'Antropic sur les systèmes d'agents https://www.anthropic.com/research/building-effective-agents défini les agents et les workflow Ne recommence pas les frameworks (LangChain, Amazon Bedrock AI Agent etc) le fameux débat sur l'abstraction Beaucoup de patterns implementable avec quelques lignes sans frameworks Plusieurs blocks de complexité croissante Augmented LLM (RAG, memory etc): Anthropic dit que les LLMs savent coordonner cela via MCP apr exemple Second: workflow prompt chaining : avec des gates et appelle les LLMs savent coordonner successivement ; favorise la precision vs la latence vu que les taches sont décomposées en plusieurs calls LLMs Workflow routing: classifie une entree et choisie la route a meilleure: separation de responsabilité Workflow : parallelisation: LLM travaillent en paralllele sur une tache et un aggregateur fait la synthèse. Paralleisaiton avec saucissonage de la tache ou voter sur le meilleur réponse Workflow : orchestrator workers: quand les taches ne sont pas bounded ou connues (genre le nombre de fichiers de code à changer) - les sous taches ne sont pas prédéfinies Workflow: evaluator optimizer: nun LLM propose une réponse, un LLM l'évalue et demande une meilleure réponse au besoin Agents: commande ou interaction avec l;humain puis autonome meme si il peut revenir demander des precisions à l'humain. Agents sont souvent des LLM utilisât des outil pour modifier l'environnement et réagir a feedback en boucle Ideal pour les problèmes ouverts et ou le nombre d'étapes n'est pas connu Recommende d'y aller avec une complexité progressive L'IA c'est pas donné https://techcrunch.com/2025/01/05/openai-is-losing-money-on-its-pricey-chatgpt-pro-plan-ceo-sam-altman-says/ OpenAI annonce que même avec des licenses à 200$/mois ils ne couvrent pas leurs couts associés… A quand l'explosion de la bulle IA ? Outillage Ghostty, un nouveau terminal pour Linux et macOS : https://ghostty.org/ Initié par Mitchell Hashimoto (hashicorp) Ghostty est un émulateur de terminal natif pour macOS et Linux. Il est écrit en Swift et utilise AppKit et SwiftUI sur macOS, et en Zig et utilise l'API GTK4 C sur Linux. Il utilise des composants d'interface utilisateur native et des raccourcis clavier et souris standard. Il prend en charge Quick Look, Force Touch et d'autres fonctionnalités spécifiques à macOS. Ghostty essaie de fournir un ensemble riche de fonctionnalités utiles pour un usage quotidien. Comment Pinterest utilise Honeycomb pour améliorer sa CI https://medium.com/pinterest-engineering/how-pinterest-leverages-honeycomb-to-enhance-ci-observability-and-improve-ci-build-stability–15eede563d75 Pinterest utilise Honeycomb pour améliorer l'observabilité de l'intégration continue (CI). Honeycomb permet à Pinterest de visualiser les métriques de build, d'analyser les tendances et de prendre des décisions basées sur les données. Honeycomb aide également Pinterest à identifier les causes potentielles des échecs de build et à rationaliser les tâches d'astreinte. Honeycomb peut également être utilisé pour suivre les métriques de build locales iOS aux côtés des détails de la machine, ce qui aide Pinterest à prioriser les mises à niveau des ordinateurs portables pour les développeurs. Méthodologies Suite à notre épisode sur les différents types de documentation, cet article parle des bonnes pratiques à suivre pour les tutoriels https://refactoringenglish.com/chapters/rules-for-software-tutorials/ Écrivez des tutoriels pour les débutants, en évitant le jargon et la terminologie complexe. Promettez un résultat clair dans le titre et expliquez l'objectif dans l'introduction. Montrez le résultat final tôt pour réduire les ambiguïtés. Rendez les extraits de code copiables et collables, en évitant les invites de shell et les commandes interactives. Utilisez les versions longues des indicateurs de ligne de commande pour plus de clarté. Séparez les valeurs définies par l'utilisateur de la logique réutilisable à l'aide de variables d'environnement ou de constantes nommées. Épargnez au lecteur les tâches inutiles en utilisant des scripts. Laissez les ordinateurs évaluer la logique conditionnelle, pas le lecteur. Maintenez le code en état de fonctionnement tout au long du tutoriel. Enseignez une chose par tutoriel et minimisez les dépendances. Les Wide events, un “nouveau” concept en observabilité https://jeremymorrell.dev/blog/a-practitioners-guide-to-wide-events/ un autre article https://isburmistrov.substack.com/p/all-you-need-is-wide-events-not-metrics L'idée est de logger des evenements (genre JSON log) avec le plus d'infos possible de la machine, la ram, la versiond e l'appli, l'utilisateur, le numero de build qui a produit l'appli, la derniere PR etc etc ca permet de filtrer et grouper by et de voir des correlations visuelles tres rapidement et de zoomer tiens les ventes baisses de 20% tiens en fait ca vient de l'appli andriod tiens aps correle a la version de l'appli mais la version de l'os si! le deuxieme article est facile a lire le premier est un guide d'usage exhaustif du concept Entre argumenter et se donner 5 minutes https://signalvnoise.com/posts/3124-give-it-five-minutes on veut souvent argumenter aka poser des questions en ayant déjà la reponse en soi emotionnellement mais ca amene beaucoup de verbiage donner 5 minutes à l'idée le temps d'y penser avant d'argumenter Loi, société et organisation Des juges fédéraux arrêtent le principe de la neutralité du net https://www.lemonde.fr/pixels/article/2025/01/03/les-etats-unis-reviennent-en-arriere-sur-le-principe-de-la-neutralite-du-net_6479575_4408996.html?lmd_medium=al&lmd_campaign=envoye-par-appli&lmd_creation=ios&lmd_source=default la neutralité du net c'est l'interdiction de traiter un paquet différemment en fonction de son émetteur Par exemple un paquet Netflix qui serait ralenti vs un paquet Amazon Donald trump est contre cette neutralité. À voir les impacts concrets dans un marché moins régulé. Rubrique débutant Un petit article sur les float vs les double en Java https://www.baeldung.com/java-float-vs-double 4 vs 8 bytes precision max de 7 vs 15 echele 10^38 vs 10^308 (ordre de grandeur) perf a peu pret similaire sauf peut etre pour des modeles d'IA qui vont privilegier une taille plus petite parfois attention overflow et les accumulation d'erreurs d'approximation BigDecimal Conférences La liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs : 20 janvier 2025 : Elastic{ON} - Paris (France) 22–25 janvier 2025 : SnowCamp 2025 - Grenoble (France) 24–25 janvier 2025 : Agile Games Île-de-France 2025 - Paris (France) 6–7 février 2025 : Touraine Tech - Tours (France) 21 février 2025 : LyonJS 100 - Lyon (France) 28 février 2025 : Paris TS La Conf - Paris (France) 6 mars 2025 : DevCon #24 : 100% IA - Paris (France) 13 mars 2025 : Oracle CloudWorld Tour Paris - Paris (France) 14 mars 2025 : Rust In Paris 2025 - Paris (France) 19–21 mars 2025 : React Paris - Paris (France) 20 mars 2025 : PGDay Paris - Paris (France) 20–21 mars 2025 : Agile Niort - Niort (France) 25 mars 2025 : ParisTestConf - Paris (France) 26–29 mars 2025 : JChateau Unconference 2025 - Cour-Cheverny (France) 27–28 mars 2025 : SymfonyLive Paris 2025 - Paris (France) 28 mars 2025 : DataDays - Lille (France) 28–29 mars 2025 : Agile Games France 2025 - Lille (France) 3 avril 2025 : DotJS - Paris (France) 3 avril 2025 : SoCraTes Rennes 2025 - Rennes (France) 4 avril 2025 : Flutter Connection 2025 - Paris (France) 10–11 avril 2025 : Android Makers - Montrouge (France) 10–12 avril 2025 : Devoxx Greece - Athens (Greece) 16–18 avril 2025 : Devoxx France - Paris (France) 23–25 avril 2025 : MODERN ENDPOINT MANAGEMENT EMEA SUMMIT 2025 - Paris (France) 24 avril 2025 : IA Data Day 2025 - Strasbourg (France) 29–30 avril 2025 : MixIT - Lyon (France) 7–9 mai 2025 : Devoxx UK - London (UK) 15 mai 2025 : Cloud Toulouse - Toulouse (France) 16 mai 2025 : AFUP Day 2025 Lille - Lille (France) 16 mai 2025 : AFUP Day 2025 Lyon - Lyon (France) 16 mai 2025 : AFUP Day 2025 Poitiers - Poitiers (France) 24 mai 2025 : Polycloud - Montpellier (France) 5–6 juin 2025 : AlpesCraft - Grenoble (France) 5–6 juin 2025 : Devquest 2025 - Niort (France) 11–13 juin 2025 : Devoxx Poland - Krakow (Poland) 12–13 juin 2025 : Agile Tour Toulouse - Toulouse (France) 12–13 juin 2025 : DevLille - Lille (France) 17 juin 2025 : Mobilis In Mobile - Nantes (France) 24 juin 2025 : WAX 2025 - Aix-en-Provence (France) 25–27 juin 2025 : BreizhCamp 2025 - Rennes (France) 26–27 juin 2025 : Sunny Tech - Montpellier (France) 1–4 juillet 2025 : Open edX Conference - 2025 - Palaiseau (France) 7–9 juillet 2025 : Riviera DEV 2025 - Sophia Antipolis (France) 18–19 septembre 2025 : API Platform Conference - Lille (France) & Online 2–3 octobre 2025 : Volcamp - Clermont-Ferrand (France) 6–10 octobre 2025 : Devoxx Belgium - Antwerp (Belgium) 9–10 octobre 2025 : Forum PHP 2025 - Marne-la-Vallée (France) 16–17 octobre 2025 : DevFest Nantes - Nantes (France) 4–7 novembre 2025 : NewCrafts 2025 - Paris (France) 6 novembre 2025 : dotAI 2025 - Paris (France) 7 novembre 2025 : BDX I/O - Bordeaux (France) 12–14 novembre 2025 : Devoxx Morocco - Marrakech (Morocco) 23–25 avril 2026 : Devoxx Greece - Athens (Greece) 17 juin 2026 : Devoxx Poland - Krakow (Poland) Nous contacter Pour réagir à cet épisode, venez discuter sur le groupe Google https://groups.google.com/group/lescastcodeurs Contactez-nous via X/twitter https://twitter.com/lescastcodeurs ou Bluesky https://bsky.app/profile/lescastcodeurs.com Faire un crowdcast ou une crowdquestion Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs Tous les épisodes et toutes les infos sur https://lescastcodeurs.com/
The CEO who bet on SwiftUI—and lost their job. Then poke some fun at Rust stans, SalesForce claims they're not hiring any developers in 2025, and more!
The CEO who bet on SwiftUI—and lost their job. Then poke some fun at Rust stans, SalesForce claims they're not hiring any developers in 2025, and more!
The CEO who bet on SwiftUI—and lost their job. Then poke some fun at Rust stans, SalesForce claims they're not hiring any developers in 2025, and more!
Fredrik snackar med Oskar Groth om hans nya app Backdrop, problemen med Swiftui, och om utveckling med AI-stöd. Backdrop är Oskars nya Mac-app för att smycka sin dator med animerade skrivbordsbakgrunder. Utvecklingen har varit lång och tagit många intressanta svängar, och Oskar berättar om hela vägen och vad som kan tänkas komma framöver. Därifrån kommer vi in på Apples vyramverk Swiftui - en modell och abstraktion som lite har misslyckats och saknar vision? Oskar har jobbat länge och djupt med Swiftui, men har nått en punkt där han istället börjat gå tillbaka till Appkit i högre grad. Det går för långsamt, kräver senaste operativsystemen, och är för svårt att gå på djupet vid behov. Sist snackar vi om Oskars syn på AI och utveckling. Oskar har svårt att se att vi kommer att sitta och skriva - och ladda ner - appar för var och varannan funktion vi behöver utan snarare ha data och be våra AI-agenter bearbeta och visa upp den på det sätt vi som användare begär. Oskar berättar också hur han använder språkmodeller i sitt utvecklande. Ett stort tack till Cloudnet som sponsrar vår VPS! Har du kommentarer, frågor eller tips? Vi är @kodsnack, @thieta, @krig, och @bjoreman på Mastodon, har en sida på Facebook och epostas på info@kodsnack.se om du vill skriva längre. Vi läser allt som skickas. Gillar du Kodsnack får du hemskt gärna recensera oss i iTunes! Du kan också stödja podden genom att ge oss en kaffe (eller två!) på Ko-fi, eller handla något i vår butik. Länkar Oskar Tidigare avsnitt med Oskar Avsnitt 446 Macos Sonoma Metal Swiftui Wallpaper engine för Windows Shaders Rive Bones Cindori Cloudkit Stöd Kodsnack på Ko-fi! Appkit Sketch Collectionview Modifiers i Swiftui View debugger i Xcode Steve Jobs presenterar första Iphone Tink Jensen Huang - VD på Nvidia Windsurf AI Claude sonnet Paddle Her Nextstep Titlar En nischad bransch Inne på elfte året Alla Macar har ju en bakgrundsbild Fel inriktning En bild på ett vattenfall 4K-upplösning, konstant Lagom mycket rörelse Otroligt behagligt DDOS:ar sig själv I stort sett wrappers idag Tre och ett halvt år En fragmenterad användarupplevelse Den upplevelse jag vill ha Vandra runt i vyhierarkin Här för att göra saker bättre Börjat i fel ände Genererar ett UI dynamiskt HR-avdelningen för AI-agenter Jag kan arbeta snabbare Du har helt rätt! Appkitrenässansen Bättre backdrops Öppen för förslag
Bienvenue dans le deux-cent-quatre-vingt-septième épisode de CacaoCast! Dans cet épisode, Philippe Casgrain et Philippe Guitard discutent des sujets suivants: Advent of code - L'expérience de Philippe Bambu Lab - Cadeau de Noël de Philippe SwiftUI - Session en ligne par Apple Aperçus SwiftUI - Ils peuvent prendre de la place Sélecteur d'application - Des raccourcis clavier Kodex - Un éditeur de texte complet pour iOS avec iCloud Drive AquaUI - Un look rétro pour votre application Mac Ecoutez cet épisode
This week we talk about: Daniel is in his napping era thanks to... THE SPIKE! (https://telemetrydeck.com/blog/incident-2024-12-10/) Dave has been bug hunting with SwiftUI and iOS 16 Join us, while we're Waiting For Review, -- We are open for sponsorship! email us at contact@waitingforreview.com The Discord server is open to all, and you can contact us via our social links below. Enjoy the show, Daniel
I don't normally do this, but content warning, this episode talks at length about death and funerals and, while I continue to approach everything with an inappropriate degree of levity, if that's something you're not game to listen to right now, go ahead and skip the first hour of this one. Recommend me your favorite show or video game at podcast@searls.co and I will either play/watch it or lie and say I did. Thanks! Now: links and transcript: Kirkland Signature, Organic Non-Dairy Oat Beverage Die with Zero book The "Prefer tabs when opening documents" setting Aaron's puns, ranked Amazon hoped more people would quit BoldVoice Accent Oracle Cab drivers get Alzheimer's less Video Games Can't Afford to Look This Good LG announces Bachelor's Only TV Can the rich world escape its baby crisis? Why aren't we talking about the real reason male college enrollment is dropping? The Diplomat The Penguin It's in the Game Madden documentary Like a Dragon / Yakuza 7 Indiana Jones and the Great Circle Transcript: [00:00:29] It is our first new year together in this relationship. [00:00:36] Breaking Change survived season one. [00:00:39] We are now in season two. [00:00:43] I don't know what, you know, how seasons should translate to a show about nothing. [00:00:51] I like to talk about how, you know, in different stages of life, we go through different seasons, right? [00:00:58] You know, like maybe, you know, after, you know, the seasonal life when maybe you get married or you have a kid, your first kid and all the changes that kind of go with that. [00:01:08] And if you play multiplayer competitive games, you might go through different seasons. [00:01:15] You know, like if you play Diablo four or Call of Duty, you might be in a particular eight week or 12 week season. [00:01:24] Now, as you grind your battle pass, that's similar in in scale and scope to having a child or having some big life event, because it turns out none of this fucking matters. [00:01:35] Hello, welcome. [00:01:36] This is a this is your kind and friendly host, Justin Searles, son of Fred Searles, son of Fred Searles himself, son of a Fred Searles. [00:01:48] That's yeah, there were there were, I think, three Fred's before me and then my dad was like combo breaker and he named me Justin. [00:02:02] Uh, thank you for subscribing to the advertisement free version of the podcast. [00:02:08] Uh, if you, if you think that there should be an advertisement version of the podcast, feel free to write in a podcast at Searles.co and then pay me money to read about your shit. [00:02:20] And I will do that. [00:02:21] Uh, and, and, you know, I'm happy to have all the conflicts of interest in the world because, uh, if your product sucks and I use it, I can't help myself. [00:02:32] I'm just, I'm just going to say it's bad. [00:02:34] So, uh, that's a real, you know, I, I, if you can't tell, I also run the ad sales department of this journalistic outfit and, uh, that might have something to do with the total lack of, uh, corporate funding. [00:02:48] Well, anyway, this is version 28 of the program. [00:02:54] This, this, this episode's breaking change titled, do you regret it yet? [00:02:59] And that'll make sense, uh, momentarily. [00:03:03] Uh, so, um, it's a big one in a sense, you know, it's something that, uh, there's very little in life that I'm not comfortable talking about. [00:03:14] And that's because, you know, well, I'll just dive right in. [00:03:20] So, so I read it, uh, I read an article, uh, uh, some number of years ago that explained that part of the reason why foot fetishes are so common in men is like part of the brain that identifies feet. [00:03:38] And part of the brain that is like erogenous in its, you know, there's different parts of the brain. [00:03:46] They do different things, but if you got to pick which neuron cluster you lived in as a part of the brain, erogenous zone, that would be sweet. [00:03:53] That'd be a lot more fun than the, um, whatever the, the part of the brain is that gets scared easily, which, uh, because I get stressed and anxious, [00:04:04] even just talking into a microphone with zero stakes on a recording that I could stop. [00:04:08] That makes me no money. [00:04:10] I'm too nervous to remember the fear part of the amygdala. [00:04:13] There it is. [00:04:14] You see, and if it just, and, and that gets back to my point in my particular fucked up brain soup, [00:04:22] the, uh, the, uh, the part of my brain that talks out my mouth hole is right next to the part of my brain that critically reasons through things. [00:04:37] So for me, it is very difficult to process something without talking it, talking it through. [00:04:47] And the idea that something is taboo has always been really uncomfortable for me. [00:04:52] And you can just sort of see the pained look on my face as I try to hold it in like a, like a burp or something. [00:04:57] Like I, I, I got to let it out somehow. [00:05:00] And so I'm, I, you know, I'm glad, I'm glad I get to be here with you. [00:05:05] I hope you find it kind of entertaining. [00:05:06] Unfortunately, the thing to talk about first thing, as I get into the section of this to-do list, that is this podcast titled life is that the big thing that happened since the last major breaking change, uh, uh, back in version 26, which is, I, I, I understand two numbers away from 28. [00:05:30] Uh, the big thing that changed, uh, is, uh, my father, Fred, he of a, a long and proud line of Fred's, uh, he passed away, uh, uh, uh, December 15th. [00:05:45] So just, just shortly after, uh, the previous, the previous version aired and, uh, pretty much every it's January 4th today and we're still working through it. [00:05:59] Um, he had a heart attack. [00:06:02] I think that's fair to say at this point, there's no, you know, no way to be a thousand percent sure, but all the signs suggest that's what it was. [00:06:11] And, uh, you know, without getting into, uh, the, the details, my side of the story is like, I was at Epcot with my brother, Jeremy. [00:06:26] So at least we were together. [00:06:28] Um, Jeremy gets the call and, uh, you know, we were, we were in that little tequila bar, uh, hanging out with a friend of ours who works there. [00:06:40] And, uh, the tequila bar inside of the Mexican pavilion pyramid. [00:06:44] And, uh, he had just brought us out the three kind of specialty cocktails that they got going on right now. [00:06:53] Uh, which is, uh, you know, wasn't, we are in a great time. [00:06:57] It was a lot of fun. [00:06:58] And, uh, Jeremy gets the call. [00:07:00] We process a little bit. [00:07:02] We realized like, we got to get home. [00:07:04] We got to figure this shit out. [00:07:06] You know, he's, he's a, he was a former emergency responder. [00:07:09] So he's really good at, uh, at thinking through the logistical things that you have to do with a relatively cool head. [00:07:16] It, you know, he comes across as like, you know, not drill sergeanty, but somebody who's like, you know, part of being calm and collected in an urgent situation is you have to be very direct. [00:07:28] And boom, boom, boom, boom. [00:07:30] So that was as soon as he knew what was happening. [00:07:35] That's the mode he flipped on. [00:07:37] And the mode that I flipped on was intense, uh, metabolization is the best word I can think of it. [00:07:44] Cause like you have like, like, like, like the saves take four shots of liquor, right? [00:07:48] You will metabolize that at whatever speed you do, and it'll hit you really hard and maybe you'll black out and maybe you'll, uh, you're a slower burn. [00:07:56] But for me, I feel, I feel things, whether they're chemical toxicology report showing up things or emotions, I tend to feel them extremely intensely and, and, and, and, and in a relatively brief burst, you know, uh, if you ever lit in a strip of magnesium on fire, which for some reason I did several times. [00:08:19] I was in, in, in different science lab classes as a kid, it brights, it burns real bright and real hot, but not for very long. [00:08:27] So while, while Jeremy was in his, you know, we got to figure out what to do mode. [00:08:33] Uh, we got to get out of here. [00:08:35] Uh, we gotta, you gotta, you know, we gotta book the next flight to Michigan to take care of this shit. [00:08:43] I was in, I'm going to, I'm going to just take a little, I'm going to pop a little deep squat here in Epcot, uh, right outside this bar. [00:08:56] And I'm going to just allow my vision to get blurry, which it did. [00:09:04] Um, my heart to race, my stomach to turn. [00:09:08] And I just needed that, you know, you lose track of time when something big and, and, and, and, and earth shaken happens. [00:09:20] I [00:09:22] snapped out of it is, you know, it's, it's crude way. [00:09:31] Words don't, words that you use for everyday things end up getting used for big life-changing things. [00:09:40] And it makes it feel smaller. [00:09:43] So even though I'm verbally processing every time I tell the story or think through it and, and talk it out. [00:09:53] I, I, I, I kind of came to my normal Justin senses pretty quickly, uh, where normal Justin senses means, you know, back in the bar, you know, everyone's, you know, who'd heard was upset and immediately like they're in their own kind of sense of shock, even not knowing my dad. [00:10:14] And I, I was, you know, uh, comforting them immediately and, you know, just asking our host, Hey, you know, because as a, as a staff member, he, he's able to get us out of the park a little bit more expeditiously, uh, than having to go all the way out and do this big, you know, what would have felt like a 15 minute walk of shame out of a theme park. [00:10:39] And, uh, yeah, anyway, so he got us out of there, we got home, booked flight, got, went up to Michigan the next day, uh, pretty much immediately. [00:10:50] And, and, and, and, and, and kudos to my brother for, for having that serious first response. [00:10:56] Cause like my first response after asking for, Hey, get us out of here was to see those three specialty cocktails on the table and be like, well, that, that would be a waste and B I could probably use a drink. [00:11:08] And so I, you know, one of them was a sake and, uh, mezcal infusion. [00:11:13] And I was like, well, they'd already poured it. [00:11:16] So I just threw that back on, on my way out the door. [00:11:18] That was probably a good move. [00:11:21] Uh, so we got up to Michigan, right? [00:11:25] And I don't want to tell anyone else's story about how, how they work through stuff and families. [00:11:31] Everyone processes things differently. [00:11:34] Uh, uh, so I'll skip all that shit. [00:11:36] I'll just say that like pretty quickly, the service planning, like that takes over, you know, the, uh, this is the first time I've had an immediate family member pass, but pretty quickly you're like, all right, well, there is this kind of, you know, process. [00:11:53] It's like not dissimilar from wedding planning, but instead of having six months, a year, or if you're an elder millennial, like eight years to plan, you have, uh, a few days. [00:12:07] And fortunately, uh, uh, dad had just by coincidence of, of, of another, uh, person we know passing had found a funeral home that he really liked. [00:12:18] And he, he said he wanted to do that one. [00:12:20] So that, that was off the table. [00:12:21] That was, that worked out. [00:12:23] But, uh, then, you know, even, and that was helpful. [00:12:28] That was really helpful to sit down and, and, and, you know, of course you go to the funeral home, you talk to the funeral home director and super sympathetic there. [00:12:35] It takes a certain kind, right? [00:12:38] A person, you know, you gotta have the strategically placed tissue boxes all over the place and then know when to stop talking and when to hand it and when to back away. [00:12:46] And, you know, dude is an absolute champ, but he's also done this before and he knows the questions to ask. [00:12:55] And it's not to like boil it down into a questionnaire, but it, it's a questionnaire. [00:13:00] It's like, Hey, what do you want? [00:13:01] How do you got to do this? [00:13:02] You know, you're being bang, boom. [00:13:04] What? [00:13:04] And fortunately, uh, collectively we came to the table with a lot of answers to a lot of those stock questions at the ready. [00:13:15] Um, but the thing that stood out to me was, you know, there's going to be a service we're going to have to write an obituary. [00:13:22] They gave us a start and, um, a start is actually the perfect thing to give me when it, when it comes to writing, you know, if you give me a blank page, it could take me all week. [00:13:32] But if you give me something I don't like and like me not writing in a hurry would result in the thing I don't like going out, then all of a sudden I get the motivation to go and write some shit. [00:13:46] So we, we, we, we, we worked together and we cleaned up the eulogy or the, excuse me, the obituary, all these terms you only use sparingly. [00:13:55] Occasionally, uh, got the obituary out, had a tremendous response, maybe from some of you because it was up on the website. [00:14:05] Had a tremendous response from people. [00:14:07] Everyone was shocked. [00:14:08] You know, no one expected that, uh, dad had a tremendously large social network being a dentist for 45 plus years in a community of people who loved him. [00:14:20] And he was genuinely, you know, an incredibly kind and friendly guy everywhere he went. [00:14:26] Uh, so, so that was good. [00:14:29] And you re and, and it was the obituary that made me realize like, well, I, you know, I knew this intellectually, but be like, oh yeah, like next few days here are for them. [00:14:37] It's for everybody else to understand process grief. [00:14:42] And so as soon as the obituary out, I was like, all right, next eulogy time. [00:14:48] So I, uh, I approached it as soon as I knew it's a, when I know something's for me, I let it be for me. [00:14:58] I'm not, I've, I accept myself. [00:15:00] I love myself and take care of myself as best I can. [00:15:03] I don't, I'm not a martyr, right? [00:15:06] Like I don't push down my needs and interests for the sake of other people. [00:15:12] To the point of other people's viewing it as selfish sometimes. [00:15:15] And increasingly over the years, I'm viewing it as like, maybe you, maybe it's the children who are wrong. [00:15:21] Maybe this is just the way to be, because it turns out that when you take good care of yourself, you can show up for other people. [00:15:26] Well, right. [00:15:26] So anyway, I, I, as soon as I knew that like the point of the service wasn't for me, the point of the service was, uh, the other people in the room who, who, some of whom drove hours and stayed overnight in hotels to come be there. [00:15:42] It was, it was to give them something. [00:15:46] So as soon as that bit flipped in my brain, it became very easy to write a eulogy because I, I approached it like work. [00:15:56] I approached it like a conference talk or yeah, like it, I didn't actually open keynote, but I thought about it because that's how, that's how I tend to storyboard and work out conference talks. [00:16:09] And I, I thought about like, well, maybe I just do that and I just don't show the slides, you know, because I think it would be possibly inappropriate to, to have a PowerPoint presentation at your, I, at a funeral. [00:16:23] I don't know. [00:16:24] I guess I had to make one anyway. [00:16:26] We'll talk about that. [00:16:29] So anyway, writing, the eulogy took over. [00:16:31] It went smoothly. [00:16:33] It, I liked how it turned out. [00:16:35] If you subscribe to the newsletter, you'll get a copy of it. [00:16:38] So, so justin.searles.co slash newsletter. [00:16:41] It's called Searles of Wisdom, which of course, you know, me making that sound kitschy right now in this rather grave moment might sound inappropriate to, to, to shill, but you will get a copy of the eulogy. [00:16:53] I'm happy with it, how it turned out. [00:16:56] I, uh, as soon as I wrote it then, of course, and this is what I'm trying to illustrate is like everything just became task A. [00:17:03] Like, okay, task A is complete, task B, no real time in there for processing and thinking through things through. [00:17:11] Uh, so the eulogy took over, wrote it, and as soon as I'd written it, I was now task C, I gotta deliver it, you know. [00:17:21] I don't typically read a script when I speak, uh, but I had to write it all out as if it was being spoken. [00:17:32] And I had to even practice and rehearse it as if I was reading it because I knew that in an emotionally, you know, the best way that people seem to talk about this is like, it's, your emotions are close to the surface as if like any little tiny thing could just break the surface tension and, and, and spill over. [00:17:51] Right. [00:17:52] I knew that out of my control, I might, I might tear up. [00:17:56] I might cry. [00:17:57] I might need a minute. [00:18:01] While delivering this. [00:18:02] And so I, uh, I, I practiced it to be read, but I knew like, man, there's just a, there's a, I call it a 5%, 10% chance that I just have a fucking breakdown and I can't get through this thing. [00:18:18] And the anxiety in the day and a half leading up to the service worrying that I would fail as a public speaker outside the context of, you know, sure. [00:18:32] Everyone would give you a break if your dad just died. [00:18:35] Right. [00:18:35] But this is like the last thing I'm doing for him, you know, in a, in a publicly meaningful way. [00:18:40] And it's also a skill that I've spent a lot of time working on. [00:18:45] And so I wouldn't for me to fail at that by, by breaking or by even, even just failing to deliver it successfully and in a, in an impactful way would have been hard for me. [00:19:05] And it would have been something I probably would be ruminating on here. [00:19:08] We are a couple of weeks later. [00:19:10] And as a result, what happened is the same thing that happens before I give a conference talk in front of a bunch of people at a conference or whatever. [00:19:18] It's the, the, the, the, uh, stress hormone gets released, the adrenaline and the cortisol starts coming out. [00:19:26] And so the morning of the funeral, everyone else is kind of approaching it their own way. [00:19:31] And I'm like, it's game time, you know, like I, I'm dialed in my, you know, all of my instincts are about just getting through that five to seven minute speech. [00:19:47] And no emotional response before then. [00:19:50] And afterwards, to be honest, the biggest emotional response afterwards was the relief of successfully. [00:19:57] And I did successfully deliver it. [00:19:59] And, uh, and then as soon as task C of delivering it is done, then task D starts of now it's the end of a funeral service. [00:20:08] And you've got a receiving line of all these guests coming up and they, you know, they're, they're approaching the open casket and they're, they're coming to, you know, hug you, talk to you. [00:20:17] See how you are. [00:20:18] And there's a performative aspect to that, right? [00:20:22] Like you gotta be like, all right, who's ready for lunch? [00:20:24] That would be inappropriate. [00:20:25] Right. [00:20:26] But the, you know, also talking about how, like, oh, I'm actually mostly focused on how I did a good job. [00:20:32] Giving this speech would separately be maybe, you know, off color, but these are the things that go through our brains in the, in these high impact moments. [00:20:43] When you just have to, when, when, whenever a situation dictates that your behavior be misaligned or the statements about oneself be at all discordant with what's really going on inside you in that literal moment. [00:21:08] And so, so I did my best, uh, of course, to make it about other people and see how they're doing and answer their questions in as, uh, productive a way as possible. [00:21:20] Right. [00:21:20] Give them answers about myself that gave them the things that they needed was my primary response all through. [00:21:29] And then, and then through that, and then task E, the wake. [00:21:32] Right. [00:21:33] And, and, uh, you do, you, you do that. [00:21:35] And then suddenly, uh, well, now you have task F after, after all that stuff of like, okay, well, we've got all this leftover food we got to take home. [00:21:42] So it's like load up the car and, and, and, and help everyone out and see everyone on their way safely. [00:21:48] And then, you know, you're exhausted and you want to just go back and, and, you know, get out of this fucking suit that barely fits. [00:21:58] Nope. [00:21:59] Task G is you got to go turn around, drive 20 minutes in the opposite direction to go back to the funeral home, to pick up all of these flowers. [00:22:05] Cause you, you tell people not to send flowers. [00:22:07] Uh, you, you say, you know, in dad's case, donate to the humane society, but people send flowers. [00:22:14] And then, you know, what do you fucking do with them? [00:22:16] Right. [00:22:17] It's like, well, here's look, if you or someone you're affiliated with sent flowers to this particular funeral, I'm deeply grateful. [00:22:25] And I had a moving moment, actually looking at all the flowers of friends of mine, people who never met dad. [00:22:31] Most of the time, a couple of our neighbors, right. [00:22:35] Who we don't really know well, but they're just really lovely people. [00:22:38] They, they did a bouquet and it was really nice. [00:22:40] You know, flowers are beautiful, but. [00:22:49] Like a cigarette can be really, really nice, but a carton can be a lot. [00:22:53] Uh, you know, a cocktail can be really nice, but drinking a whole fifth is problematic. [00:23:00] When you have so many bouquets that you can't fit them into your vehicle and also the people in the vehicle. [00:23:06] It's all it's, it, it just, it, it becomes a work. [00:23:10] Right. [00:23:11] And so that's what, you know, that's one of the ways in which having this service like this become sort of, you know, like less about the immediate family and more about the surrounding, you know, network of people that somebody knows. [00:23:24] And maybe this is all common sense and, and I should have been more conscientious of this going into the experience, but looking back on it, uh, I was just sort of like, all right, well, here's next task is figure out how to cram all these flowers. [00:23:39] And then you get home and it's like, where'd all these flowers go? [00:23:43] And so you just kind of scatter them throughout the house. [00:23:48] Uh, but they're all, you know, like they're not invasives or they're not like going to survive the long winter. [00:23:53] Like they're, they're now all on their own separate week to two week timer of themselves dying and needing to be dealt with, which is like, you know, a, let's just say an echo or a reverberation of like kind of what you're thinking about. [00:24:07] So maybe, okay, look, I don't want to spend this whole fucking podcast talking about a funeral. [00:24:15] I realize it's like maybe a bit of a downer, but you know, there's other stuff going on to like, I skipped a whole fucking half day activity. [00:24:25] Actually is wedge a task in there between B and C if you're for anyone playing the home game and keeping track of this, not that it's that complicated, uh, you got to come up with a slideshow, right? [00:24:39] So you've got the visitation before the service and we also had it the night before for anyone who couldn't make it or, you know, maybe acquaintances and whatnot, who didn't feel like going to the whole service, whatever it is. [00:24:57] You got to come up with a slideshow, which is theoretically easy these days because there's so many goddamn pictures of all of us. [00:25:04] It's theoretically easy because you have tools like, uh, shared iCloud photo libraries, uh, and shared albums, which, you know, as soon as somebody suggested a shared album, I went into my like pre canned speech. [00:25:20] And I think of, well, actually shared albums predate, you know, modern ways of sharing photos in the photos app. [00:25:25] And so whenever you put anything in a shared album, Apple compresses it pretty badly. [00:25:30] It, it downscales the resolution. [00:25:32] It also, you know, adjusts downward, the quality of the image. [00:25:39] And I got halfway through that spiel and being like, you know, this is going to go up on a 10 ADP TV in the back of a room. [00:25:45] Like it's fine. [00:25:46] That's not the issue. [00:25:47] But then the next issue is, you know, everyone goes in the people and pets and photo library, sees all the pictures of dad that aren't bad. [00:25:56] And we all dump them into the same shared library, shared photo album, which is like, like, that's no one's fault, but mine. [00:26:02] I told people just do that and I'll clear them out. [00:26:04] But then you wind up with, and it turns out, this is how that stupid fucking system works. [00:26:09] The shared photo album will treat all of those duplicates as distinct. [00:26:14] And there's, even though there's duplicate deduping now in the photos app, it does not apply to shared library, shared photo albums. [00:26:21] And on top of that, if somebody adds something to a shared photo album, they can remove it. [00:26:27] But for somebody else, like, like, let's say I added a photo of dad that Becky didn't want in there. [00:26:33] Well, Becky can't go in and remove it. [00:26:35] Only the organizer can remove it or the person who posted it. [00:26:39] So then I had to be the person going through and, like, servicing any requests people had for photos to, like, ban from the slideshow. [00:26:46] Because for whatever reason, you know, it's a sensitive time. [00:26:49] And then after it was all done, you realize the slideshow tools don't work correctly. [00:26:56] Like, just the play button and all the different options in the Mac, like, just don't work correctly in a shared album. [00:27:01] Because, of course, they don't. [00:27:02] So then you've got to copy them all. [00:27:07] You thought I was talking about feelings, but it all comes back. [00:27:11] All comes back to Apple shit. [00:27:13] So you've got to copy them all into your photo library, whoever is going to be running the slideshow. [00:27:17] Create a new slideshow project from there. [00:27:20] Dump them all in there. [00:27:22] And then realize there's no, once you've dumped shit into a slideshow project, there is no way to reorder them. [00:27:27] Short of manually drag dropping extremely slowly in a left-right horizontal scroll dingus. [00:27:34] And you've got 500 pictures or something, just fucking forget about it. [00:27:37] And on top of that, I had all these dupes. [00:27:40] Like, I had manually de-duped as best as I could before. [00:27:43] But first question I get half an hour into the visitation is like, yeah, it just seems weird. [00:27:48] Because, like, there's this one picture of me that's going to come up, like, four times. [00:27:52] I was like, I'm sorry, bud. [00:27:54] I said, oh, it's randomized or whatever, you know. [00:28:01] So after you get all of those into a photo slideshow project, and successfully, I installed amphetamine, which will keep your screen awake. [00:28:11] And you plug that into HDMI, and you know how to put a fucking Mac on a TV. [00:28:15] I don't need to tell you that. [00:28:16] After all of it was done and I got home, the two days later I realized, oh, yeah, shit. [00:28:24] Because now my photo library is full, all of the most recent photos are just shit that was copied, that was already initially in my photo library anyway. [00:28:32] And none of them are showing up in the little dupes thing, of course, because it needs days to analyze on Wi-Fi. [00:28:39] So I went to the recent imports or recently saved tab, and then I had to manually go through and delete, like, 1,400 pictures of my dad. [00:28:50] And then hope that, like, I wasn't deleting one that wasn't a dupe. [00:28:55] So I had to go through and, like, manually tease these out. [00:28:59] It took me a fucking hour and a half. [00:29:02] And, yeah, so then I deleted all those to kind of dedupe it, because I was confident I had copies of all those pictures already somewhere else in the library. [00:29:11] That could have been smoother, is the short version of this story. [00:29:16] And, of course, there's no goddamn good software that does this. [00:29:20] There are two people who have made apps that simply shuffle photos in a slideshow. [00:29:26] And they're bad apps. [00:29:27] So they look old. [00:29:28] It's like they basically had to reinvent slideshow stuff, including the software and the shuffling and the crossfades and the Ken Burns effect and the music and all the stuff that the Apple product does. [00:29:38] They had to reinvent all that just to have a shuffle button, which is what you probably want, especially if you've got a mix of scanned photos and, you know, contemporaneous photos. [00:29:50] Because there's no way you're going to make the timeline actually contiguous. [00:29:54] So instead, like, well, here's, like, a bunch of photos between, like, 2003 and 2017, because that's the digital photography era. [00:30:05] And then in 2018, when we scanned all of our photo albums, suddenly it's just all of the photo albums in random order. [00:30:12] And then you have 2019 to 2024. [00:30:15] Like, it's not a cohesive experience. [00:30:20] Now, I would say, well, you know, it's a visitation. [00:30:23] People are coming and going. [00:30:24] They go in, they visit the casket, and they spend time chatting. [00:30:28] But, like, they don't, though. [00:30:30] All the chairs are pointing at this TV, and people just sat there for more than an hour. [00:30:36] They'd watch multiple. [00:30:37] Like, I thought that having a 45-minute long slideshow, that pacing would be okay. [00:30:43] People watched it two or three times while they chatted, you know, just the state of, the lack of kinetic energy throughout the entire experience of somebody passing. [00:30:54] You know, the phrase sit Shiva from Judaism. [00:30:58] Like, I am somebody who is relatively uncomfortable just sitting around, around other people. [00:31:06] I'm happy to sit around by myself. [00:31:08] I'm doing it right now. [00:31:09] I'm actually pretty good at it. [00:31:10] Ask anybody. [00:31:11] But to not have an activity with other people, and also not to have, like, interesting conversation to have with other people, [00:31:20] to just have to be around and with other people, is really goddamn hard. [00:31:25] And I suspect I'm not the only one who feels that way. [00:31:28] Hence, everyone just staring at the slideshow and making a comment here and there. [00:31:32] So, a couple things did jump out at me about that service and about the visitation, though, that were interesting. [00:31:40] One was, Dad had mentored a couple of younger dentists in his last couple years practicing. [00:31:48] People who had intended to take over the practice. [00:31:51] That's his own long story. [00:31:52] But they were, my age or younger, probably younger, definitely younger, come to think of it. [00:31:59] Splendid people. [00:32:00] Like, super upbeat, super duper energetic, just, like, fun. [00:32:05] They forced my dad to do stuff like go fishing and get out and do things that he normally wouldn't do. [00:32:13] And they blew me away by just saying, like, you know, dad was 72. [00:32:18] He was like, this guy, most dentists, when they get older, the hands get shaky. [00:32:25] Their craft gets sloppy. [00:32:28] But your dad was, he, he, I think he said, he set the standard. [00:32:33] He was just a beast. [00:32:34] He was, and I was like, what do you mean? [00:32:36] Like, actually, I've never really talked to anyone about his craft, right? [00:32:41] Because he didn't want to talk about it. [00:32:44] He was like, his prep work and, and, and how he prepped for each procedure was meticulous and perfect every single time. [00:32:53] And his technique while doing things was, was like, like phenomenal. [00:33:00] And they went into a handful of specifics for me. [00:33:02] And that was really special to me because I, like, I, I know that about myself that I'm chasing this asymptotic goal of perfection, but I didn't have evidence that my dad was as well outside of just stuff around the house. [00:33:16] And you can say that, well, that's perfectionism and that's OCD. [00:33:19] And we both have like, you know, traits of that too. [00:33:20] But the, that was really interesting because everyone had only ever experienced my dad as a patient or somebody who's like really, really gregarious and friendly and good at comforting patients. [00:33:33] But yeah, their stories were really, really encouraging. [00:33:39] And that was, that was one where it's like, I was glad to be able to walk away from that series of experiences and learn new stuff about my dad, uh, new stuff that rounded out the story of him in my mind. [00:33:54] Uh, so I'm really thankful to those guys, uh, because they were able to dive in and baby bird for me, explain like I'm five, like the ways in which he was a great dentist, which is just a thing that like, you know, everyone. [00:34:08] How do you rate your dentist, right? [00:34:10] Well, he's good at comforting me. [00:34:12] He's good at explaining things. [00:34:13] He doesn't upsell me a lot. [00:34:15] You know, I'm not afraid when I'm in the chair with him. [00:34:17] And then afterwards things seem to go pretty well, but like, really like the, the work is a black box. [00:34:22] You can't see what's going on in your fucking mouth. [00:34:24] You're, you're conscious. [00:34:25] You know how you feel before and how you feel after, but it's, uh, that was really cool. [00:34:31] Uh, the other, uh, another dentist that worked for him earlier in, in, in, uh, his career, uh, she, she had previously lost her dad and she said, you know, she said something that felt at the time, extremely true. [00:34:47] That a funeral is like having to host the worst party ever. [00:34:51] Uh, so that just to put a cap on it, that's, uh, accurate. [00:35:00] It felt like a party because I got to see a whole lot of people, friends from college, you know, Mark Van Holstein, the president or former president, but co-founder, founder of, uh, mutually human software in Grand Rapids. [00:35:10] You had my former housemate. [00:35:11] He came out, uh, uh, other kid, uh, other friends from, from middle school, high school made the trick, trick, trick, trick, Jeff and Dan. [00:35:21] It was really great to see so many people under, you know, suboptimal circumstances. [00:35:28] And then of course the whole set of extended family where it's like weddings and funerals, huh? [00:35:33] And then like the obligatory, like, yeah, we should really figure out a way to see each other more. [00:35:37] And it's like true. [00:35:38] And no one doesn't feel that way. [00:35:40] It's just like structurally unlikely the way people's lives work. [00:35:44] Uh, and so there's a sort of, uh, uh, nihilism is definitely the wrong word. [00:35:52] There's a sort of resignation that one has about what even are weddings and funerals and why is it that there's this whole cast of characters in your life that are important or close to you and via affiliation or history in some way. [00:36:12] But that you only see at these really like, like, like, like loud life events where it's a big, the background sound is a huge gong going off that distracts from actually getting to know the people. [00:36:26] If you just, you know, picked them on a random Tuesday and went to lunch, you'd probably learn a lot about the person. [00:36:31] But if it's just in the context of like, you know, like looking at, you know, a tray of sandwiches and having to find something to say, it's all going to be sucked in by the event. [00:36:41] And that's too bad, but that's, that's life, I guess, uh, tasks, you know, H through Z day after I, I had intentionally put off any sort of like looking at stuff, like, like thinking about the logistics, uh, the finances, the legal side, the, all that stuff, life insurance, yada, yada. [00:37:06] Uh, but then, you know, it was a lot of that, right. [00:37:09] For, for the rest of our trip, we were there for, for, for 11 days. [00:37:12] I would say skipping a lot of the minutiae because I, of course, you know, when the, when the, when, when a, when a household had a household or breadwinner passes and they didn't leave instructions, like you got to go and do the forensic analysis to figure out like, what are all the, where is everything? [00:37:32] Right. [00:37:32] That's, that's what it was. [00:37:34] It's all fine. [00:37:36] But the, uh, the tech support son, which is like my, you know, uh, it's not an official designation, but, uh, you know, it's a, it's a role I've stepped into and I feel like I've grown into pretty well. [00:37:48] One of the things that jumped is, all right, so we got a couple of things going on. [00:37:54] One, my mom is in an Apple family organized to buy my dad's Apple ID. [00:37:59] Now what? [00:38:00] All the purchases have been made in general on dad's Apple ID, including their Apple one premiere subscription. [00:38:06] Okay. [00:38:07] Well, you know, next eight, you can imagine my next eight Google searches or coggy searches. [00:38:13] All right. [00:38:14] Well, how do you change head of house or organizer of a family answer? [00:38:19] You cannot. [00:38:19] Okay. [00:38:20] Well, how can I transfer the purchases from an organizer to somebody else in the family? [00:38:28] You cannot. [00:38:28] Okay. [00:38:29] Is there a process by which I can make somebody sort of like a legacy page on Facebook, a legacy [00:38:35] human Apple ID? [00:38:37] No. [00:38:39] Okay. [00:38:40] So what do I do? [00:38:41] And they're like, well, you can call Apple support and they may need a death certificate, [00:38:45] but then you can call them and then they can do some amount of stuff, but some, but you don't [00:38:52] get to know what. [00:38:52] And once you kind of go through that process, the Apple ID gets like locked out or that's a, [00:38:57] that's a risk. [00:38:58] And all the sort of, you know, contingent, other things related to that. [00:39:02] I was like, all right, well, I don't necessarily want to do that as a first resort, but I do got [00:39:09] to figure this out because having just like this extra Apple, having this whole like digital [00:39:14] twin to borrow a, an industry term, continue to be a part of a, you know, an Apple family, [00:39:22] a one password family or all this for years into years, just because the software companies [00:39:27] don't make it logistically possible to die. [00:39:30] Uh, that seems great, you know, like, like, so working through that, you know, like I, I still [00:39:38] don't quite have a solution to that. [00:39:39] I'm just going to get through a couple of billing cycles on all the other stuff first, [00:39:43] before I think too hard about it. [00:39:44] Just kidding. [00:39:45] I've thought really hard about it and I've got a 15 step, you know, uh, set of to do's, [00:39:50] but they're just gonna, I gracefully, mercifully, I mercifully punted them two weeks into the [00:39:56] future. [00:39:56] Uh, I, one of the biggest things other than the Apple family stuff was my, my dad had just [00:40:09] bought a new iPhone 16. [00:40:12] I, and he set it up and all that stuff, but my mom was on an older one, like a 12 pro or a 12 mini or a 13 mini. [00:40:19] And it didn't make sense to leave her with the old phone and the new 16, just like in a drawer, [00:40:30] it made sense to give her the new phone. [00:40:33] Right. [00:40:34] Otherwise that the other phone's old enough. [00:40:36] It's like, I'll just be back in six months or, or, or, you know, like we'll, you'll be wasting [00:40:39] money. [00:40:40] So, and that, you know, just like deleting photos of your dad because of a stupid duplication bug, [00:40:45] having to go through a whole bunch of hoops to, to migrate one phone to the other was like the [00:40:50] next challenge. [00:40:52] Cause here was why it was thorny, right? [00:40:54] If, if all of the bank accounts and multi-factor authentication against banks is almost exclusively [00:41:03] SMS, right? [00:41:04] Cause they didn't get on the bandwagon for a, a T O T P or, you know, like you scan the QR code and you [00:41:11] get an authenticator app to, to show it. [00:41:13] And because they, they certainly don't support pass keys. [00:41:16] Uh, we can't just turn off dad's cellular line until we work through all the financial stuff. [00:41:22] But at the same time, okay. [00:41:25] So like if I'm resetting dad's phone and moving mom's stuff onto dad's phone, then how do I [00:41:30] transfer, how do I get these, how do I make it so that dad's SIM doesn't just disappear? [00:41:35] Cause like last thing I want to do is have to call T-Mobile and explain, and then set up the [00:41:41] old phone from scratch and then have them like, I guess, restart the e-SIM process over the phone [00:41:46] on Christmas, you know, Christmas Eve or whatever. [00:41:51] So I, um, I came up with like a towers of Hanoi solution that I actually kind of liked. [00:41:56] What I did was I transferred dad's SIM from the 16 to mom's 13, call it. [00:42:03] So now she had two SIMs on her phone. [00:42:05] She had her primary SIM and dad's SIM, uh, e-SIM. [00:42:09] Uh, uh, and then I, oh, and the 13 or the 12, whatever has one physical and one e-SIM. [00:42:17] And she fortunately had a physical SIM in there. [00:42:19] So she was able to, to, to receive dad's old e-SIM. [00:42:22] So now the 13 of that stage has a physical, a physical nano SIM and an e-SIM. [00:42:27] And then that allowed me to go to dad's phone, back it up, of course, and all that, and then [00:42:32] wipe it. [00:42:33] Cause it had no cellular plan on it. [00:42:35] And then you set it up new, you set it up for mom. [00:42:40] And during that wizard, you know, you do the direct transfer, they're connected via, you [00:42:45] know, USB cables or whatever. [00:42:46] You set it up for mom. [00:42:49] And she has to, she, it says, Hey, you're ready to transfer your cellular plans. [00:42:56] I'm like, yes. [00:42:56] And then I, it's, I realized it's not, you click, you tap one in it and a check box goes [00:43:02] up next to that number. [00:43:03] And then you check the other one and the check box, the check mark moves. [00:43:07] It's clearly like it doesn't support actually initializing a phone with two SIMs, which means [00:43:14] now it's like, okay, so I'll move for a primary SIM first as part of this direct transfer. [00:43:20] And then the direct transfer, because her router was simultaneously and coincidentally failing, [00:43:25] the direct transfer failed because the wifi timed out. [00:43:30] And when you're in the direct transfer mode between two phones in that setting, you can't [00:43:36] like get to control center and turn off the wifi nick. [00:43:39] So then I've got these two phones that I can clearly tell are timing out in the activation [00:43:43] process while the SIM is moving. [00:43:45] And I'm like, fuck sake. [00:43:47] But it's also like a mesh router and there's three mesh access points throughout the house [00:43:52] and I don't know where they are. [00:43:53] So I, I can't just unplug them and make the SSID go away. [00:43:57] So then I would like throw on my winter coat, it's fucking freezing outside and I start marching [00:44:03] down the street until I can get to like far enough away that they both lose the wifi signal [00:44:09] so that the transfer doesn't fail. [00:44:11] So I, it took 15 houses. [00:44:14] I'm, you know, in, in, in, in, uh, uh, my winter coat, 15 houses, they finally get onto [00:44:21] five G and then the, the, the transfer starts succeeding. [00:44:23] And then I start walking back and then it's just instantly says failed. [00:44:26] So then I get back to the house, start the whole thing over again. [00:44:30] And now of course, mom's primary SIM is like trapped on the first phone or the second, the [00:44:36] new 16, but in setting it up again, it doesn't see it anymore because like it was just at that [00:44:41] perfect moment when all the e-sim juice lands in the 16 or whatever. [00:44:48] So I started the whole process over again. [00:44:50] I, I, I set it up fair and square and then I, I, uh, uh, it all went fine after a few hours. [00:44:59] And then the last thing it does is the 13 or whatever says, Hey, okay, time to delete [00:45:04] me. [00:45:04] And then it's like a, basically two taps and you've deleted the phone that just was the [00:45:08] sender or the old phone in the transfer process. [00:45:11] And I almost habitually clicked it. [00:45:13] And I was like, wait, no, that will delete the SIM, the e-sim. [00:45:16] So click, no, cancel out of that, restart the phone. [00:45:20] And then, and then you can transfer that second SIM back to the first one. [00:45:23] So like when that was just two phones, just moving to e-sims, like again, you know, note [00:45:28] to Apple, like this could probably be made easier. [00:45:31] Uh, it's just, it's edge cases like this, that all software companies are really, really bad [00:45:37] at, uh, especially ones that don't have a great track record of automated testing and stuff [00:45:43] like, so I get it. [00:45:45] I know why it happened. [00:45:47] The other thing that sucked was a dad had an Apple card and if we're not going to have [00:45:52] a phone with dad on it, you don't want, there's no other fucking way to cancel an Apple card. [00:45:57] You have to be on the phone that has the Apple card to cancel it. [00:46:01] But if there's no phone with Fred on it, like that meant I, that forced the issue. [00:46:05] Like I'm not, I'm putting off all the financial stuff, right? [00:46:07] But I had to cancel the Apple card, but I had a balance. [00:46:10] So now I've got to like pay a balance on this Apple card. [00:46:13] And of course the banking connection, he didn't like, like it expired or something. [00:46:18] So I have to go and find the banking information. [00:46:21] I log in, whatever I hit cancel. [00:46:23] And it's, you can cancel the card. [00:46:25] It wants you to pay the balance first. [00:46:27] I tried to pay the exact balance. [00:46:30] It was $218 and 17 cents. [00:46:32] I, and I tried 15 goddamn times. [00:46:35] Uh, I changed to a different bank and it said insufficient balance. [00:46:41] And I was like, does that mean like the checking accounts overdrawn? [00:46:45] So then I'm panicking. [00:46:45] It's like, so I go into the bank account. [00:46:47] I'm like, is it easy overdrawn or what? [00:46:50] Hour of, you know, me retrying and doing this only to realize that there's a fucking bug, [00:46:58] a rounding bug of sub decimal sense. [00:47:02] Because when it said $218 and 17 cents as being the balance owed, it was probably a floating [00:47:09] point under there of $218 and call it 16.51 cents. [00:47:16] Because when I tried to do $218 and 17 cents, it failed. [00:47:21] It's an insufficient balance, which made me think insufficient funds. [00:47:25] But then I had the bright idea to try just one penny less than that. [00:47:28] And it cleared. [00:47:30] It meant that you can't make a payment on the card that is in excess of what is owed on the [00:47:35] card. [00:47:35] And it saw that fraction of a penny as being, oh, hey now, a little too generous. [00:47:40] So an Apple, you know, be good guy, Apple, making sure people can't overpay. [00:47:44] Also, the bad guy, Apple doesn't write tests or use, you know, appropriate data structures [00:47:50] for storing goddamn dollars. [00:47:52] Results in, I can't close this card out. [00:47:56] So eventually, so I got it down to one penny. [00:47:58] And then when it was down to one penny, it let me pay one penny, which is separately hilarious. [00:48:02] So I close the Apple card and then the Apple card says, all right, you're closed now. [00:48:09] The card is removed from all your devices. [00:48:14] Now monitor for the next few months and make payments against anything that shows up in [00:48:18] the statement, right? [00:48:19] Because like, that's how credit cards work. [00:48:20] Things don't post immediately. [00:48:22] I was like, well, I have no idea what was getting charged onto this thing. [00:48:26] What might hit it? [00:48:28] I'd scrolled through a statement. [00:48:31] I had a feeling it wouldn't be bad. [00:48:32] But then of course, like as soon as I wipe that phone, I even restored it. [00:48:36] I restored dad's Apple ID onto another phone because I had a burner phone back when I got [00:48:42] home just to see like, would it, would it, would it, would the, would it, the iCloud sync [00:48:47] work, you know, where your wallet shit just shows up in the new phone just magically after [00:48:52] setup. [00:48:52] And the answer is no, because the Apple card is closed. [00:48:55] So there's no reason to put the Apple card on the new phone. [00:48:58] People would be confused, even though it's just in this removed state of like, watch the [00:49:01] balance, which means now that once the phone gets wiped, there's actually no way to pay [00:49:06] a balance. [00:49:06] If one were to materialize, I guess it would just go to collections. [00:49:10] So now, you know, like, please don't post any transactions to my dad's defunct Apple card. [00:49:16] Cause like, I don't have any fucking way to pay it. [00:49:18] There's card.apple.com. [00:49:19] But like, that's just for downloading statements. [00:49:22] So great job, Apple, like you should really make it easier to die. [00:49:26] Like, fuck, fuck it's sake. [00:49:27] This is a, I realized this has been a lot. [00:49:33] I'm going to move right along. [00:49:37] While we were up, we wanted to just, we needed a break. [00:49:42] It'd been like day after day of the same, you know, emotional and logistical tumult. [00:49:48] Just a real grind. [00:49:49] So we want to go see a movie and like, like, uh, uh, Jeremy had expressed interest in seeing [00:49:53] wicked, which is an autobiography about Ariana Grande as a person, as best I can tell. [00:50:00] Real just, she seems like a piece of shit in real life, but also she got to play one in [00:50:08] a movie. [00:50:08] And so like, uh, it's like one of those things where it's like, well, that Bill Murray just [00:50:12] like plays himself. [00:50:13] And it just so happens that he is such a delightful and interesting person that everything he's [00:50:18] in is always amazing. [00:50:19] So I'm glad she got to play herself. [00:50:21] It seemed well acted, but I knew it was probably just who she is. [00:50:27] Uh, huge fan. [00:50:31] Uh, so anyway, we went to see wicked and all of a sudden, you know, we joked about it beforehand, [00:50:37] but like, I can't, I don't understand lyrics. [00:50:39] I have a thing I've got a, uh, a worm lives inside my brain. [00:50:43] And whenever there's a song playing, uh, that worm starts humming and I can't hear the lyrics [00:50:49] to the song. [00:50:50] I can't understand or discriminate where the words are starting and stopping. [00:50:53] I can't tell what is being said. [00:50:56] And if I can barely make it out, then I'm so overwrought and focusing on what's being said. [00:51:01] Then, then I kind of lose the thread. [00:51:02] Like I'll hear the individual words if I really focus, but then not understand what is being [00:51:08] communicated through lyrics. [00:51:10] At the same time, you go to a musical, you go to like, when I went to Hamilton, this was [00:51:15] like extremely clear. [00:51:16] It's like, Oh, I, I put, we went to Hamilton, uh, when, when Hamilton was still cool and not [00:51:21] seen as some sort of, you know, uh, uh, white supremacist whitewashing by putting BIPOC [00:51:27] people in, in these roles and whatnot, 2020 was a hell of a year, uh, when we went to [00:51:33] Hamilton, I got, they got through the first number and I was like, that was very impressive. [00:51:38] I, I appreciate the, this tonal, you know, interesting take. [00:51:43] This is like very like, like skillfully and artfully, uh, done. [00:51:47] Uh, and then, uh, you know, then they go straight into another song and I turned to Becky. [00:51:54] He was like, is there, is there no talking in this one? [00:51:56] Is there zero spoken dialogue in this? [00:52:00] And it turned out that the answer was yes. [00:52:02] And I was like, I don't understand anything. [00:52:04] And so, uh, when we went to Hamilton, which I'd paid a lot of money to go to, uh, I walked [00:52:09] to the lobby in the middle of the show. [00:52:12] And then I ordered like two thingies of wine, uh, which I paid a lot of money for the wine. [00:52:20] And then I got back to the seat, threw back both wines and fell asleep. [00:52:23] So that was Hamilton for me. [00:52:26] So here I am at wicked and we're in the first little ditty. [00:52:28] And I'm like, I don't understand any of these fucking words. [00:52:33] I don't, I don't know what's happening. [00:52:35] And I've got to worry that this is going to be a song heavy movie, which it was. [00:52:40] So I was like, you know what, like normally I'd be embarrassed to do this, [00:52:44] but I'm going to go to the front and say, like, I'm hard of hearing. [00:52:49] Can I have a subtitle machine dingus? [00:52:52] I knew that theaters had them. [00:52:55] I didn't really know how they worked or what they were, if they were any good. [00:52:58] But I was like, you know, for the sake of science and technology, I'm going to try the [00:53:02] subtitle dingus. [00:53:04] So I went to the front, I went to the little, like, you know, whatever ticket booth, and [00:53:08] they handed me a gooseneck snake thing where the bottom is like, it's like a, a drill that [00:53:17] would bore a tunnel, but it goes in the cup holder. [00:53:20] So it's like a cup holder drill and it screws in. [00:53:23] So it goes in the cup holder. [00:53:25] You screw it in to secure it. [00:53:27] And then there's a long gooseneck, a too long, in my opinion, gooseneck. [00:53:31] It's like probably two feet. [00:53:34] If you don't know the term gooseneck, like, like, like, like bendy, like, like, you know, [00:53:42] relatively thick, not a cable, but like a, like a pole that is pliable. [00:53:48] So you can bend it in all sorts of different directions to kind of adjust it. [00:53:53] And then on the top, it was a, a device that had a blinder on the top so that other people [00:53:59] weren't getting a whole bunch of illumination and seeing subtitles and a radio system in [00:54:05] the center, as well as like a kind of internal projector unit. [00:54:08] And so it was very interesting to see how these worked. [00:54:11] You would, and, and, and honestly, because I was uninterested in the Ariana Grande story, [00:54:16] I was mostly just futzing with, and it gave me something to do for the three and a half [00:54:23] hours. [00:54:23] By the way, I had been told that there was an intermission and I was told that because somebody [00:54:29] had in the game of telephone and said they broke it up into two parts. [00:54:32] So like I went in expecting an intermission and then we're like three hours in, it's almost [00:54:37] like 11 fucking o'clock. [00:54:38] And I'm like, I got to pee, but like, I hear there's an intermission. [00:54:41] How late are we going to be here? [00:54:44] So that was, that kept me busy too. [00:54:46] I had something else to do, but anyway, the, the, the subtitle machine was really interesting [00:54:50] because as you look at it and once you get it configured, right, you realize like while [00:55:00] I was walking down the, the, the corridor, it just said, Hey, you know, go inside the theater [00:55:06] or whatever. [00:55:07] When you go in the side of theater, it'll just start showing up. [00:55:09] And when I looked inside the theater, just at the, at the edge of the theater, it was like, [00:55:14] malfunctioning. [00:55:15] It said like something about an, a reader. [00:55:16] And then I realized, Oh, what's happening here is, and this is really one of those kind [00:55:20] of old school, cool technology, you know, innovations where they couldn't just use a digital system [00:55:27] for this per se. [00:55:28] Like a protocol, right? [00:55:30] Like if you were to build this today, these would be like lithium ion battery devices that [00:55:34] would have some charging dock and some kind of software that ran on, like on top of some [00:55:38] minimal Linux stack. [00:55:40] And then it would use the, the, the theater's wifi to send subtitles, which would require [00:55:46] all of this configuration, right? [00:55:47] Like, okay, now punch in on the touch screen on your subtitle device, like which theater, [00:55:52] which theater you're in and which movie time. [00:55:54] And we'll play it. [00:55:55] Right. [00:55:55] But instead, this was just like a short wave radio system. [00:55:58] So you'd be inside the theater and every theater you, you've never even noticed this. [00:56:03] Probably you're in the theater and you're watching a movie. [00:56:06] And the subtitle machine is just receiving these waves that you can't see because the projector [00:56:13] area, I presume is just always blasting out radio waves of the current line of dialogue. [00:56:20] You just didn't have the device to see it. [00:56:22] And so I got the thing screwed in with Jeremy's help because I'm not very handy and I got to [00:56:29] actually follow along the rest of the movie, which makes me an authority on, on, on being [00:56:34] able to say not that great. [00:56:35] Not very interesting. [00:56:37] I I'm on the Kinsey scale. [00:56:40] I'm all the way to hetero male, which means musical theater is not, doesn't come naturally [00:56:48] to me in terms of being like something that gets me real excited deep down there. [00:56:53] Uh, sorry if that's you, I'm just saying it's not it anyway. [00:57:02] Uh, yeah. [00:57:03] So that was, that was pretty cool. [00:57:05] Uh, other life stuff. [00:57:13] Well, the, the version, I guess tying a bow around the, uh, the trip up there and all [00:57:21] that realizing I've gone an hour on it now. [00:57:25] People, when you move from the Midwest United States to Florida and you do it because you [00:57:35] feel like the Midwest kind of sucks, you know, it's cold. [00:57:38] A lot of the time, uh, a lot of the rest belt States are, well, they're called rust belt. [00:57:45] They're dying economically. [00:57:46] There's less economic activity. [00:57:48] There's less new stuff. [00:57:50] There's less vibrancy. [00:57:51] Uh, when you move from the Midwest to Florida and you have a great setup there and lots of sunshine [00:58:00] and, and, and, and stuff to do people react in very different ways. [00:58:08] No one just says, Oh my God, that's so great for you. [00:58:10] I'm really, really happy for you. [00:58:11] Wow. [00:58:12] That sounds awesome. [00:58:12] I mean, some people kind of do, uh, a lot of people are either jealous or in some state [00:58:20] of denial or, or frustration by it, you know, like you feel abandoned or whatnot. [00:58:27] I think, I think the people who genuinely think the Midwest is better and the people who are [00:58:34] jealous, both end up asking the same question of us Midwestern expats. [00:58:41] And that, that question is, do you regret it yet? [00:58:44] God, I've been down here for four years. [00:58:48] Right. [00:58:49] And here I am. [00:58:50] My dad just died. [00:58:52] Just put on a funeral, you know, staying at a Hampton Inn. [00:58:57] Huh? [00:58:59] A Hampton Inn where like, it was a great experience. [00:59:02] The staff were really great, but like they had a desk in the laundry room that was never screwed [00:59:07] in or, or, or secured properly. [00:59:08] So I set down my brand new MacBook pro and a Coke, a can of Coke. [00:59:13] And then it just collapsed all of it all at once to the floor. [00:59:17] So my MacBook got soaking wet and Coke. [00:59:19] And also the, the unibody enclosure got super scraped up. [00:59:23] And, uh, the, the day before the funeral, I was all, you know, in a lot of neck pain from, [00:59:29] from the fall and the general manager still hasn't gotten back to me. [00:59:33] It was gray outside. [00:59:35] It was cold. [00:59:37] You know, and I, and I was struggling like for activities and things we could do as a [00:59:42] family and, and settled. [00:59:43] Uh, and the best, most entertaining thing to do was the Ariana Grande story. [00:59:50] And they ask, do you regret it yet? [00:59:52] Like totally just straight. [00:59:56] Every time we go back, I thought like, this is going to be the trip. [01:00:00] I go back and I don't have a single person ask me that, but then it came up relative at the [01:00:06] wake. [01:00:09] And I was like, man, thank you for asking. [01:00:11] You know, I think about it a lot. [01:00:14] I love Michigan. [01:00:14] Michigan's beautiful in the summers, but inside I'm like, come on. [01:00:17] No, I don't regret it. [01:00:19] Yes. [01:00:20] I'm already homesick. [01:00:21] Uh, it's fucking awesome here. [01:00:23] I'm not going to lie. [01:00:24] Like I live in goddamn paradise. [01:00:26] I don't know why more people don't do it. [01:00:28] I don't, you know, politics are part of the equation for a lot of folks, uh, politics and [01:00:35] policies. [01:00:36] Uh, and I, and I get it, but man, like I am so much fucking happier here just on a [01:00:42] day-to-day basis. [01:00:43] Like you, you blind out all of the sort of like metal layer stuff and just like my meat [01:00:48] bag gets a lot more sun and a lot more movement and a lot more just stuff going on down here. [01:00:53] And so, no, I don't regret it yet. [01:00:54] Uh, but if I ever do, I'll let you know, I've got a podcast, so I definitely will. [01:01:02] Uh, one thing I do regret is eating so, or is, uh, uh, drinking so little dairy in my [01:01:07] twenties because I have become extremely lactose intolerant. [01:01:12] Uh, so I don't have any lactase to the point where even if I drink lactaid, like, like what [01:01:19] they call like lactose free milk, but, but actually is lactose full milk with also lactase enzyme [01:01:25] added to it so that your tummy will process it. [01:01:28] Even when I drink that, I drank 20 grams two nights ago and the whole next day I was [01:01:33] wrecked. [01:01:33] That's not a lot of fucking milk. [01:01:35] Uh, now you call that an allergy or an intolerance. [01:01:39] Um, but like if I want cereal, like it's going to happen. [01:01:42] So sure you can pathologize it, but I was like, I, I am making a trade with my future self. [01:01:48] Like I'm going to put up with some indigestion so that I can have this deal. [01:01:52] Okay. [01:01:53] We're in, uh, if I had a peanut allergy to the point of like anaphylactic shock, I'd be [01:02:01] having the same negotiation. [01:02:03] I would just probably not take the deal most of the time. [01:02:07] Uh, anyway, I finally caved. [01:02:11] Cause like I talking about politics, I am politically, um, unaccepting intolerant of, [01:02:19] uh, milk alternatives. [01:02:22] Cause it's not milk. [01:02:24] People call almond milk, milk. [01:02:26] That's not milk. [01:02:27] That's just squeezed almond. [01:02:29] And like the amount of water that goes into making an almond is insane. [01:02:32] And so the, whatever almond milk is must be not, not really great from a sustainability [01:02:37] perspective. [01:02:38] And it's just, it's not, it's not what it says on the 10. [01:02:41] It shouldn't be allowed to be called milk. [01:02:43] It's like that fake egg product called just egg. [01:02:45] I was like, that's no, it's unjust egg. [01:02:48] This is not an egg. [01:02:49] Uh, so I, I, I caved and I bought Kirkland dairy-free oat beverage is what it says in the [01:03:00] box and oat milk. [01:03:02] And I had that last night and I'm still mad at myself about it, but here we are. [01:03:08] I'm going to say that's, I'm going to cap it at an hour of life updates. [01:03:16] I knew it would be life heavy. [01:03:18] Um, but, and because it's a heavy period of life right now, but if you're curious after all [01:03:24] of this shit and all the storytelling and all me getting stuff off my chest, I'm actually [01:03:28] doing great. [01:03:29] I'm processing things. [01:03:30] Love my dad dearly. [01:03:31] Um, I, I've taken the moments, you know, to be quiet and still and to spend effort and [01:03:44] time genuinely reflecting and going through old things and, you know, letting feelings happen [01:03:51] and letting those memories come by and doing other
In this insightful episode, we had the pleasure of chatting with Chris Eidhof and Florian Kugler, the brilliant developers behind objc.io. Together, we explored the world of animations in SwiftUI, emphasizing the importance of understanding how SwiftUI creates and manages views and animations.
Part 2 of our chat with Donny - we discuss the job market, AI, Vision Pro, and of course Swift UI.GuestDonny WalsDonny Wals
I'd write more here, but I've got places to be. Becky, Jeremy, and I are going to engage in some holiday festivities. We have a couple gingerbread houses to make and a tree to trim. And no nog to speak of. Really, that's all you get by way of show notes this time as a result, deal with it. Send your complaints to podcast@searls.co and they will be read on air. Some bullet points below the fold: My 90-minute, outdated guide to setting up a Mac Aaron's puns, ranked Jim Carrey is 62 and can't even retire I bought my 8 year old a switch and didn't realize how much games cost Teen creates memecoin, dumps it, earns $50,000 Startup will brick $800 emotional support robot for kids without refunds Install the Mozi app (manifesto here | app here) Vision Pro getting PSVR2 controllers The 2024 Game Awards news roundup Intergalactic: The Heretic Prophet looks badass, but is it too inclusive for The Gamers? We don't talk about Luigi An invisible desktop app for cheating on technical interviews (HN comments) Sora is out, but it's not good yet Indiana Jones and the Great Circle is out, and it is good yet Emudeck is so great it shouldn't be legal, and some people probably think it isn't Pikmin Stay tuned to my YouTube channel for upcoming LIVE streams Transcript: [00:00:00] Thank you. [00:00:29] Good morning, internet. [00:00:32] I started speaking before I realized, as an asynchronous audio production, it's actually pretty unlikely that it's the morning where you are. [00:00:43] Although, if it is the morning, coincidentally, please feel free to be creeped out, check over your shoulder. [00:00:51] Today was, I woke up with Vim and Vigor this morning, super excited to take on the day, thinking maybe I've got what it takes to record an audio production today. [00:01:07] And then we have an elderly coffee pot. [00:01:11] I don't want to completely put the blame on it because we were using it wrong for several years. [00:01:24] And it's a long story that I will shorten to say, any piece of consumer electronics or appliances in America, the half-life keeps decreasing. [00:01:37] And so when I say elderly coffee pot, I mean that we bought this coffee pot post-COVID. [00:01:42] And it's already feeling like, oh, we should probably get a new coffee pot, huh? [00:01:45] What happens is, from time to time, heat will build up in the grounds dingus. [00:01:55] I'm just realizing now that I'm like, you know, I'm not a coffee engineer. [00:01:58] Some of you are. [00:02:00] But, you know, of course, we all know that the dingus is connected to the water spigot, which is above the craft. [00:02:09] And what happens, as far as I can tell, is once in a while, you get all that hot water and grounds swirling around. [00:02:20] And if it clogs at all, like if it doesn't release just so, the whole little undercarriage, again, this is a technical term, just stay with me. [00:02:30] And we'll pop forward like three millimeters, which is just enough for the water to kind of miss its target on the craft and then spray all who's he what's it's, as well as for the spigot to start just kind of like splurring, you know, this water coffee slurry everywhere. [00:02:49] And so I went after, you know, but then you still get the triumphant ding dong sound that the coffee is ready. [00:02:56] So I walked over to the coffee expecting like, yes, it's the best, best way to start my day or whatever. [00:03:06] Pull out the coffee. [00:03:07] And the pot is too light. [00:03:10] And I had a familiarity of like what that means. [00:03:13] It means like there is water somewhere. [00:03:17] And it's not in this pot. [00:03:19] And so it's just like, you know, this big, big machine we actually have we've put because of our Mr. [00:03:26] Coffee's, you know, elderly onset incontinence. [00:03:33] We have we have put the entire coffee pot on a tray, like a rimmed silicone tray that you would use for like, I guess, a dog feeding bowl, right? [00:03:45] A dog, you know, messily eats food and slaps water around and stuff. [00:03:49] And you don't want it all over your hardwood. [00:03:50] Like you'd put this underneath that and it would catch some of the water. [00:03:53] So we I spent the first 30 minutes of my waking life today getting my hopes up that I was going to have coffee, followed by, you know, painstakingly carrying this entire cradle of of of coffee pot full of hot brown liquid. [00:04:10] That would stay in all of my clothes and, you know, get on the cabinets and stuff with a silicone underbelly thing. [00:04:18] And just kind of like, you know, we've got one of those big we're very fortunate to have one of those big farmers, farmer house, farmhouse. [00:04:25] I never know what to call it. [00:04:27] Steel, basically a double wide sink. [00:04:30] So what's nice about a double wide sink is that if you've got a problem in your kitchen and you're only a few steps away, whether it's the coffee pot part of the kitchen or the fridge or the freezer or the God forbid, the range or the oven, you can just sort of strategically hurl whatever it is you're holding just about into the into the sink. [00:04:51] And then once it hits the sink, it's, you know, the the the potential damage is limited. [00:04:57] So I gently hurled my coffee apparatus. [00:05:02] Is that the plural of apparatus? [00:05:04] One wonders into the into the into the sink and then spent the next 20 minutes, you know, scrubbing them and all to make another pot. [00:05:13] And Becky, of course, walks down the minute that the second pot is about to be finished. [00:05:18] And I'm like, I've already seen some shit and I'm going to go record a podcast now. [00:05:22] And that swallow you just heard was me having a sip of coffee that was not disgusting, but not great. [00:05:31] But I'll take it over where I was an hour ago. [00:05:39] Thank you for for subscribing as a as a true believer in breaking change. [00:05:47] We're coming up on one year now. [00:05:49] It's hard to believe that it's already been a year, not because this has been a lot of work or a big accomplishment, but just because the the the agony of existence seems to accelerate as you get older. [00:06:03] It's one of the few kindnesses in life and so as we whipsaw around the sun yet again, we're about to do that. [00:06:11] This is the 26th edition version 26 of the podcast. [00:06:17] I've got two names here to release titles and I haven't picked one yet. [00:06:22] So as a special. [00:06:24] Nearing the end of the year treat. [00:06:29] I'm going to pitch them both to you now, right? [00:06:31] So so we're in this together. [00:06:33] I like to think this is a highly collaborative one person show. [00:06:37] Version 26 rich nanotexture. [00:06:42] And that's a nod to the MacBook Pro has a nanotexture anti-glare screen coding option. [00:06:52] It's a reference to the rich Corinthian leather that was actually it's a Chrysler reference. [00:06:58] It's a made up thing. [00:06:59] There is no such thing as Corinthian leather, but like that's what they called their their seating. [00:07:03] And Steve Jobs referenced that as being the inspiration for I think it was the iPad calendar app. [00:07:13] With the rich Corinthian leather up at the top during the era of skeuomorphic designs back in 2010, 2009, maybe I can't remember exactly when they I think it's 2010 when he had his famous actually leather chair demonstration of the iPad. [00:07:28] Maybe the reason that that stood out to me was the car reference because it is it is an upsell. [00:07:34] The nanotexture $150 if you want to have a don't call it matte finish. [00:07:41] The other one, so that's option one, rich nanotexture. [00:07:46] And I didn't love it because I couldn't get texture. [00:07:49] I couldn't get the same Corinthian, right? [00:07:53] Like you want that bite, the multisyllabic bite that adds the extra, you know, the gravitas of a luxury good. [00:08:04] Yeah, texture just didn't have it for me. [00:08:06] But then if you change that word, it doesn't make sense. [00:08:08] So I mean, the other option two that came to mind version 26 don't don't by the way, don't think I'm going to edit this in post and fix it. [00:08:19] I will not. [00:08:20] I will ultimately land on one of these and that will be the title that you saw on your podcast player. [00:08:25] Or maybe some third thing will come to mind and then this conversation will be moot. [00:08:29] I do not think of this collaborative exercise. [00:08:32] Just imagine it's a it's a it's a quantum collaboration. [00:08:37] So by observing it, that's you actually took part. [00:08:41] You opened your podcast player and then the yeah, the entangled, you know, bits just they coalesced around one of these two names or some third name. [00:08:58] It's all just statistics version 26 Luigi's Mansion, which is a nod to two things at once. [00:09:05] I'm going to talk a little bit about GameCube, but also I'll probably not escape mentioning Luigi Manjoni Manjoni man. [00:09:15] You know, I haven't been watching the news. [00:09:17] I don't know how to pronounce his name, but it looks enough like mansion that I was like, oh, man. [00:09:21] I bet you there's a Nintendo PR guy whose day just got fucking ruined by the fella who is a overnight folk hero. [00:09:30] More attractive than most assassins, I would say. [00:09:35] Great hair. [00:09:36] Good skin. [00:09:37] Apparently, skincare Reddit is all about this fella who murdered in cold blood the CEO of UnitedHealthcare. [00:09:45] If you haven't caught the news, if you're even less online than I am. [00:09:51] And yeah, so I'm trying to decide. [00:09:53] I think Luigi's Mansion is probably going to win. [00:09:56] It's more timely. [00:09:57] It's the first time the name Luigi has come up in the last year. [00:10:00] And I may have mentioned nanotexture before when discussing Apple's very compromised studio display. [00:10:11] So I'm leaning Luigi's Mansion, but, you know, don't tempt me. [00:10:15] I might switch. [00:10:18] I'm going to just keep drinking coffee because I got to power through this. [00:10:21] Let's talk about some life stuff. [00:10:24] I so when we last talked that way back in the heady days of version 25, I had just gotten off a plane from Japan. [00:10:34] I was still a little bit jet lagged. [00:10:36] I recorded later in the evening. [00:10:38] I was tired. [00:10:39] You know, I was still overcoming. [00:10:41] I listened to the episode, realized I was overcoming a cold. [00:10:44] You know, then Becky shortly thereafter, after recording, she developed a pretty bad cough. [00:10:51] And so we've both been sleeping relatively poorly. [00:10:53] And I can't complain about this cough because her having a cough for four nights is nothing like me snoring on and off for over a year. [00:11:02] And I think the fact that her cough is consistent is actually a kindness compared to the sporadic nature of my snoring, where it's like I might go a week without it. [00:11:11] And then all of a sudden there's like, bam. [00:11:14] So she doesn't, you know, it's like sneaks up on her and that's not fair. [00:11:17] So so she's got a cough and I haven't been sleeping particularly well. [00:11:20] Maybe that's it. [00:11:22] I also, you know, I wanted to dry out because I was living on shoe highs, you know, canned cocktails in Japan for way too long. [00:11:30] Just drinking, you know, five whole dollars of alcohol every day, which is an irresponsible amount of alcohol. [00:11:36] It turns out. [00:11:40] Yeah, that's one nice thing about living in Orlando and theme park Orlando is that the average price of a cocktail here is seriously $20. [00:11:49] I think it is. [00:11:51] I am delighted and surprised when I find a cocktail under $20. [00:11:55] That's any good. [00:11:55] In fact, the four seasons right around the corner, their lobby bar has a some of the best bartenders in the state of Florida. [00:12:05] Like they went all kinds of awards. [00:12:06] And so when you say a lobby bar, you think it sucks. [00:12:09] But it's actually it's like it's a it's a restaurant with a room if you're ever around and they still do a happy hour with like $4. [00:12:18] It was $4 beers. [00:12:19] I think they finally increased to $5 beers draft beer. [00:12:23] And it's all craft. [00:12:25] You know, it's all fancy people stuff. [00:12:27] And they do it's I think it's $10 margaritas, French 75s, and they got some other happy hour cocktail. [00:12:37] It was highballs for a while. [00:12:39] Whiskey highballs was like probably centauri toki or something. [00:12:43] I gotta say like that $10 margarita. [00:12:47] They'll throw some jalapeno in there if you want some tahini rim, you know, they do it up. [00:12:52] They do it well. [00:12:54] But that might be the cheapest cocktail I've had in all of Orlando is at the Four Seasons. [00:13:01] Famous for that TikTok meme of the Four Seasons baby, if you're a TikTok person. [00:13:06] Anyway, all that all all this drinking talk back to the point. [00:13:11] I've been not drinking for a week. [00:13:12] And I, you know, I'm back to tracking my nutrients every day. [00:13:17] The things that I consume and adding up all of the protein and carbohydrate and realizing [00:13:21] if you don't drink, it's actually really easy to blow past one's protein goals. [00:13:25] And so I had one day where I had like 240 grams of protein, which is [00:13:28] enough protein that you'll feel it the next morning if you're not used to it. [00:13:34] And I still was losing weight. [00:13:38] I lost like five or six pounds in the last week. [00:13:43] And to the point where it was like, you know, I was feeling a little lightheaded, [00:13:47] a little bit woozy because I wasn't drinking enough is the takeaway. [00:13:52] So so thank God we got to go to a Christmas party last night. [00:13:57] It was it was great Gatsby themed. [00:13:58] And I dressed up like a man who wanted to do the bare minimum to not get made fun of at the party. [00:14:05] So I had some some suspenders on instead of a belt, which was the first time I ever put on suspenders. [00:14:13] They were not period appropriate suspenders simply because they had the, you know, the [00:14:18] little class B dues instead of how they had some other system for I don't I don't fucking know. [00:14:25] Like I, I had chat GPT basically helped me through this. [00:14:28] And it's like, hey, you want these kinds of suspenders? [00:14:30] I'm like, that sounds like an ordeal. [00:14:31] How about I just get some universal one size fits all fit and clip them in? [00:14:36] I also had a clip on bow tie. [00:14:37] So that worked. [00:14:39] When you think clip on bow tie, I guess I'd never used one before, but like it, I always [00:14:45] assumed it would just be like, you know, like a barrette clip that would go in front of the [00:14:49] front button and look silly for that reason. [00:14:51] And maybe that's how they used to be. [00:14:53] But it seems these days, if you want to spend $3 on a fancy clip on bow tie with a nice texturing, [00:14:58] I'll say, uh, it's just pre it's a pre tied bow with a still wraps around your neck. [00:15:04] It's just, it has a class mechanism, which seems smart to me, right? [00:15:08] I don't know what. [00:15:09] Look, if you're really into men's fashion, uh, there's this weird intersection or this tension [00:15:19] between I'm a manly man who, who ties my own shoes and, you know, kills my own dinner and [00:15:25] stuff. [00:15:25] And I, I, for fuck's sake, tie my own bow tie from scratch every day. [00:15:29] Right? [00:15:29] Like there's a toxically masculine approach to bow ties, but at the same time, it is such [00:15:35] a foofy accoutrement. [00:15:37] It's like an ascot, um, that the idea of like a manly man, like a man trying to demonstrate [00:15:43] his manliness by the fact that he doesn't use a clip on bow tie, uh, came to mind yesterday [00:15:50] when I was, uh, struggling even with the clasping kind. [00:15:54] I was like, man, I wish I could just get this to anyway. [00:15:58] Um, I had a vest at a gray vest. [00:16:03] This is all brand new territory for me. [00:16:05] Uh, yeah, I, I've, I've leaned pretty hard into the t-shirt and shorts and or jeans life [00:16:10] for so long. [00:16:12] Uh, the, the fella in front of us when we, when we were checking in, cause they took little [00:16:16] photos of you, uh, all of the women had the same exact flapper dress from Amazon, you know, [00:16:22] with the, the, the, the hairband thing with the, you know, fake, the polyester peacock tail. [00:16:28] Becky's looked the best. [00:16:29] I'm not gonna, I'm not even lying. [00:16:32] Uh, uh, her dress actually fit. [00:16:35] He had some, uh, very ill fitting flapper costumes that these women couldn't even move in. [00:16:40] Um, it was interesting. [00:16:42] Uh, but the, the fella in front of us at check-in was wearing a, a, a full blown, you know, tuxedo [00:16:48] get up that he brought from home. [00:16:50] And he was talking about, Oh yeah, well he's got two of them and his wife, you know, ribbed [00:16:54] him a little bit that he could only fit in one. [00:16:55] I was like, man, owning a tuxedo, that's nuts. [00:16:58] Like, and then it like turns out he's like got all these suits and these fancy clothes and [00:17:02] he's an older gentleman. [00:17:05] Uh, but my entire career only the first few years did I have to think about what I was [00:17:10] wearing and, and it never really got beyond pleated, you know, khakis and a starched shirt. [00:17:18] And, and I had, I had to wear a suit maybe on two sales calls. [00:17:22] Um, and they were always the sales calls that were just, uh, there were certain sales demos [00:17:30] when I was a, a, a baby consultant, these really complex bids. [00:17:39] I remember we were at cook County once, uh, uh, the, the county that wraps Chicago and it [00:17:44] has a lot of functions and facilities that operate at the county level. [00:17:48] So, but of course we're in Chicago in some, you know, uh, dystopian office building. [00:17:54] That's very Gothic, I should say. [00:17:57] And the, the solution that we were selling was a response to a bid around some kind of [00:18:05] document, electronic document ingestion and, and, and routing solution. [00:18:09] And so what, what that meant was it was like a 12 person team. [00:18:14] It was a big project working on this pitch. [00:18:18] And most of the work and most of the money came from the software side at the end of the [00:18:23] process. [00:18:23] It's like, you're going to get IBM file net and you're going to get all these different, [00:18:26] uh, enterprise tools. [00:18:28] And we're going to integrate, uh, with all your systems and, and build these custom integrations [00:18:32] that you've asked for here and here and here. [00:18:33] But the, the, the hard part is the human logistics of how do you get all of their paper documents [00:18:41] into the system. [00:18:42] Uh, and that was my job was I had to get paper and then scan it, uh, with a production, big [00:18:50] Kodak funkin fucking scanner. [00:18:52] Uh, and then use, what was it? [00:18:54] Kofax capture or something like a, like an OCR tool of the era. [00:18:59] And the thing about it is that scanning is not, was not ever a science and neither is [00:19:07] OCR, the OCR stuff and OCR stands for optical character recognition. [00:19:10] So you'd have a form and you'd write on the form, like, you know, uh, uh, uh, uh, some, [00:19:15] some demo address and name and all this. [00:19:19] I spent. [00:19:22] So like the people doing the software, like they, they could just like click a button and [00:19:26] like, they could even just use fakery, right? [00:19:29] Like, Oh, the API is not really there, but I'll always return this particular, like, let's [00:19:33] call it an XML soap message. [00:19:34] And so the, the software guys clocked in, clocked out, got back to their billable work. [00:19:39] I, because the stakes were so high in this particular, uh, and I'm here right now explaining [00:19:46] all of this nonsense because I had to wear a suit and that was also really bad, but I [00:19:51] was in Chicago late at night with a group of like, at that point it was like 9 PM and it [00:19:54] was just me and two partners. [00:19:56] Cause the partners had a sickness called avoid family, stay at work. [00:20:02] And, uh, I, I was just running over and over and over again where I'd like, you know, [00:20:09] I'd take the paper, I'd put it through the scanner and it would get 90% of the OCR stuff [00:20:13] done, or I'd get it perfect. [00:20:15] And it would scan everything just right, which would result in the downstream, you know, after [00:20:21] the capture, like all of my integrations, like would route it to the right thing. [00:20:24] So that like, it was basically a game of mousetrap or dominoes where like my task was both [00:20:29] the most important to being able to demonstrate, but also the most error prone, but also the [00:20:37] least, uh, financially like, um, valuable to, to our services company. [00:20:42] And so I had no support, uh, on top of that, they, the, our fucking it people pushed out some [00:20:49] kind of, um, you know, involuntary security update security and bunny quotes that, that [00:20:57] slowed my system down dramatically in the course of just like a day. [00:21:01] And I had, I had no way to test for this. [00:21:04] So I remember I was up at like 11 PM at that point, trying to make this work consistently [00:21:10] and realizing that the only way to get it to run it all required me to, um, install a virtual [00:21:16] machine, put windows in the virtual machine, install all this software inside that virtual [00:21:22] machine, and then run it there because only in the black box of an encrypted virtual machine [00:21:27] image or, uh, you know, a virtual machine, like disc image, could I evade all of the accountant [00:21:33] bullshit that was trying to track and encrypt and, and, and muck with files and flight and [00:21:38] so forth. [00:21:39] And so it was only around like probably one 30 or two that I got to bed and our, our demo [00:21:46] was like at seven in the morning and I had to wear a suit. [00:21:47] So if you ever wonder, Hey, why is Justin always just in a, a t-shirt and shorts? [00:21:54] Uh, I would say childhood trauma, fuck suits. [00:21:59] The only, the only time I associate like nice clothes, you know, having a lot of [00:22:03] having to dress up is church shit. [00:22:05] I didn't want to go to. [00:22:06] And usually it's like the worst church shit. [00:22:09] Like there's some cool church shit out there, you know, youth group where everyone's a horny, [00:22:14] right. [00:22:15] And singing pop songs to try to get people in. [00:22:17] That's as church shit goes, that's above average. [00:22:21] But when you're talking about like, Hey, you know, this aunt you've never heard of died and [00:22:27] we got to go all the way to goddamn Dearborn to sit in a Catholic mass, that's going to [00:22:32] be in Latin. [00:22:33] And they're going to, you know, one of those, you know, you should feel bad for him because [00:22:39] he's abused. [00:22:39] But one of the altar boys, he's going to be waving that little like incense thingy, [00:22:43] the jigger back and forth and back and forth like a metronome. [00:22:46] And, uh, you're going to get all this soot in your face, all of that, you know, frankincense [00:22:51] and myrrh and whatever the fuck they burn. [00:22:52] And, uh, yeah, then they're going to play some songs, but they're not going to be songs you [00:22:57] want to hear. [00:22:57] And you're going to be uncomfortable because I bought you this suit at JC Penny when you [00:23:01] were like nine and you're 12, you're 12 now, and you've gained a lot of weight, but [00:23:06] here we are. [00:23:07] And then you got to go and, you know, like, don't worry because after the service, there's [00:23:12] a big meal, but it's mostly just going to be, you know, styrofoam plates and plastic forks [00:23:16] and, uh, cold rubbery chicken. [00:23:19] And then a whole lot of family members who want to pinch your cheeks, uh, had an aunt that [00:23:24] always wanted to, um, put on a bunch of red lipstick and kiss me and leave kiss marks. [00:23:30] And she thought that was adorable and everyone else thought it was funny. [00:23:33] And for whatever reason, I wasn't a fan, uh, that's the kind of, uh, yeah, so anyway, moving [00:23:45] right along the, uh, the, the other than having to dress up, the, the Christmas party was really [00:23:50] nice because it had an all you can drink martini bar. [00:23:52] So that, that helped that took the edge off a little bit since I hadn't been drinking for [00:23:57] the previous week. [00:23:57] Uh, and it was, you know, uh, they, they had a great bartender, the, the, I assume that [00:24:07] that people drank gin martinis back in the day of Gatsby, but it seemed to be a vodka forward [00:24:12] martini bar, which I appreciated. [00:24:15] Uh, as I get older and my taste buds start dying, uh, I found myself going from dry martinis [00:24:23] to martinis with an olive to martinis with two olives to me asking for like a little bit of [00:24:30] olive juice and then drinking the martini and realizing that wasn't quite enough olive juice. [00:24:34] So that's just disgusting, but, um, it's where, uh, it's one of the signs of age, I guess. [00:24:43] Uh, so the martini bar was good. [00:24:46] Uh, they also had an aged old fashion that they'd made, you know, homemade, um, with like nutmeg [00:24:51] and cinnamon in there. [00:24:52] That was impressive. [00:24:53] Uh, so yeah, had a, had a big old Christmas party last night, had a couple of drinks, uh, [00:25:00] and, and, uh, because of the contrast, whenever I go, you know, go a week without any alcohol [00:25:06] and then I have some alcohol and then I wake up the next morning and I'm like, oh yes, I [00:25:11] know what people mean now that alcohol is poison. [00:25:13] And it's a mildly poisonous thing because I feel mildly poisoned. [00:25:19] Um, and, and I just usually feel that most days until I forget about it. [00:25:23] So it's a data point, uh, to think about, uh, uh, I, I, I had a good, good run for, [00:25:30] for a while there, just cause like when you live in a fucking theme park and there's nowadays [00:25:34] alcohol everywhere that I go and every outing, I had a good run for a few months. [00:25:40] Um, not last year, the year before where I just didn't drink at home as a rule to myself. [00:25:46] I was like, you know, I'm not going to pour any liquor for myself at home unless I'm entertaining [00:25:49] guests. [00:25:50] And, uh, even then go easy on it because I I'm, I'm, I'm going to just the background radiation [00:25:56] of existence in when you live in a bunch of resorts. [00:25:59] Uh, I'll, I'll get, I'll get, I'll get plenty of alcohol subcutaneously. [00:26:05] Um, a contact tie. [00:26:07] So maybe I'll, maybe I'll try that again. [00:26:10] I don't know. [00:26:11] It's the stuff you think about in mid December when you're just inundated with specialty food [00:26:17] and drink options, uh, do other life stuff that isn't alcohol or religion or clothing [00:26:27] related. [00:26:28] Oh, uh, uh, I've been on a quest to not necessarily save a bunch of money, not necessarily. [00:26:35] Uh, I was going to say, uh, tighten my belt, but, uh, I don't know what the suspender equivalent [00:26:43] is because I did not wear a belt last night. [00:26:45] I just wore suspenders. [00:26:46] Uh, I've been interested in, in not budgeting either. [00:26:52] Just, I think awareness. [00:26:54] Like I want, I know that a lot of money flies through my pockets every month in the form of, [00:27:01] um, SAS software subscriptions and streaming services. [00:27:05] I mentioned this last, uh, last go round that I was recommending, Hey, let's say, go take a [00:27:11] look at like our unused streaming subscriptions of those. [00:27:14] Uh, yesterday I did cancel max. [00:27:16] Cause I realized that, uh, if I'm not watching a lot of news, I'm not going to watch John Oliver [00:27:20] and, and they frankly, a lot of HBO's prestige shows haven't been besides they cut a Sesame [00:27:28] street and it just so happened that I canceled that day. [00:27:31] So maybe there's a, some data engineer at HBO who's like, Oh man, people are canceling because [00:27:37] we got rid of Sesame street. [00:27:38] Uh, that would be good. [00:27:40] That would be good for America to get that feedback. [00:27:43] Uh, yeah. [00:27:44] I just want awareness of like, where's the money going and in what proportion and does that sound [00:27:50] right to me? [00:27:50] Uh, and I've, there are software tools for this. [00:27:53] Uh, they are all compromised in some way. [00:27:57] For example, we just, uh, we'd used lunch money in the past, which is a cool app. [00:28:02] And it has the kind of, you know, basic integrations you would expect. [00:28:06] I don't know if it uses plaid or whatever behind the covers, but like you, you connect your, your, [00:28:11] your checking accounts, your credit card accounts. [00:28:14] It lists all your transactions is very, um, customizable in terms of rules that you can [00:28:21] set. [00:28:21] It has an API. [00:28:22] Jen is a solo co-founder and she seems really, really competent and lovely and responsive, [00:28:27] which are all great things. [00:28:29] But the UI is a little clunky for me. [00:28:32] I don't like how it handled URLs. [00:28:33] It was like, once you got all the transactions in there and, and set up, it didn't feel informative [00:28:41] because there wasn't like a good reporting or graphs that just kind of at a glance would [00:28:45] tell you, this is where your money's going. [00:28:46] At least for me. [00:28:47] Uh, additionally, like it, it can't do the Apple card. [00:28:51] That's the, that's become the crux for a lot of these services is that, um, Apple card [00:28:55] only added support for reading. [00:28:59] Uh, well now you can read, uh, uh, so I, Apple added away on iOS and specifically iPhone [00:29:07] OS to read, uh, transactions from Apple card, Apple savings and Apple cash. [00:29:14] And this was like nine months ago, if that, but copilot, uh, money is one of two apps maybe [00:29:22] that supports this. [00:29:23] And so if you, if you have, we have, we each have an Apple card and we use it for kind of [00:29:29] our silly stuff whenever we're, you know, using a tap to pay. [00:29:33] So, so if, if you want to track transactions and you don't want to manually export CSVs [00:29:40] from your wife's phone every 30 days, which is the process that I'd fallen into with, with [00:29:44] lunch money, then you, you basically have copilot money. [00:29:50] And then there's another one, maybe Monarch, uh, the copilot money. [00:29:53] People are always talking about this other app called Monarch. [00:29:55] I haven't checked it out. [00:29:55] I don't know if that's why they like it or if it's just the other one that's being developed [00:29:59] right now in this post mint apocalypse, as we all grapple with the fact that mint was [00:30:04] always bad, uh, but people got into it and I don't copilot money is like nice, but like [00:30:11] it, like, for example, like if I'm, uh, if I buy a, uh, if I put $10, the equivalent of [00:30:19] $10, so 1000 yen on my Starbucks card in Japan, which is totally separate because of course it [00:30:25] is there's two Starbucks cards. [00:30:27] There's the one in Japan and then the one in the rest of the world. [00:30:30] So you open the Japanese only app, you put a thousand yen on it. [00:30:33] Uh, you pay for that with Apple pay. [00:30:36] So which goes to my Apple card and copilot money will read that transaction. [00:30:40] But if you read like the text in the merchant description, it's literally like [00:30:44] staba day and it's like all no spaces. [00:30:47] It's just like 40 characters in a row to, and if you really squint, you can kind of see [00:30:52] Starbucks, Japan, um, you know, app store payment, which is, you know, like I want to [00:31:00] change that to Starbucks, Japan, and then set up a rule to just like always change that. [00:31:05] So I don't have to like memorize these random ass merchant names. [00:31:08] Uh, apparently like after, after two hours of setting up copilot money yesterday, I realized [00:31:13] that there's like both no way to set up that kind of rule. [00:31:16] The only rule that it supports is categorization of, of spending fine, but then if you set [00:31:22] up a rule and you don't like it, there's no way to edit the rules cause there's no UI for [00:31:25] rule editing. [00:31:26] And so then, you know, where do you go, but read it and you're like, okay, well there's [00:31:30] a subreddit. [00:31:30] And then like, what's half the post in the subreddit? [00:31:32] It's about, Oh, of course it's a bunch of dads who are like, I can't see my rules and I have [00:31:36] to contact support. [00:31:37] And it's been nine months. [00:31:38] And I was like, Oh God. [00:31:39] So that's, uh, if anyone's got any great budgeting software that supports Apple card, you let me [00:31:46] know. [00:31:47] Uh, and also isn't a part-time job. [00:31:50] I'm not gonna, I'm not gonna spend all day on this. [00:31:52] I'm not, I'm not gonna, I'm gonna check in on this, uh, the four times a year that I, that [00:31:58] I wake up in a cold sweat wondering, Oh my God, how many subscriptions do I have? [00:32:02] Which is, uh, I, I really missed my calling by not being a dad, I guess. [00:32:07] But it did land me on looking at rocket money. [00:32:11] Uh, so, so, so there was an app called true bill that marketed heavily with like a lot of [00:32:19] other DTC apps where the pitch was, we will negotiate your bills for you. [00:32:26] And by bills, I think that one of the reasons why this, this, this business probably struggled [00:32:31] is that there's really only two that they could reasonably negotiate on your behalf. [00:32:37] You know, you, you imagine they've got a call center or they've got people who've, who [00:32:40] are trained, who have scripts that they follow, who, who will doggedly keep calling back until [00:32:44] they get what, you know, the discount, the, just the steps that you would have to go through [00:32:48] if you wanted to call Comcast or Verizon, they, they, they, they can basically could basically [00:32:57] only really negotiate your ISP and your cell phone carrier. [00:33:01] Cause those are the two sort of, you know, that are, that are transactional enough that [00:33:08] are regionalized or nationalized enough that they, that they could train on. [00:33:11] And then of course, like they, they're the ones that like get you in with a teaser rate and [00:33:15] then gradually turn up the heat over the course of a couple of years. [00:33:19] Well, Quicken Loans bought, they rebranded as rocket and then rocket fill in the blank [00:33:26] with other products. [00:33:26] And they bought true bill around the same time. [00:33:29] And I, my understanding from a distance is that true bill, uh, uh, that became rocket money [00:33:36] in order to be an entree into other rocket star services. [00:33:41] So like you, you now, when you install rocket money, it's still got the negotiation thing. [00:33:46] Cause that's what they market it on, but you have to slog through so much like, no, I'm actually [00:33:52] all set with credit and, and, and, and debt repayment services. [00:33:57] And I'm, I'm already all set with financial advisors and retirement goals. [00:34:00] I just get me to the, to the thing where I can pay you 35% of whatever you save me on [00:34:06] my ISP bill. [00:34:07] And so of course, you know, like I, I, I signed up for the first time, went through the app [00:34:12] onboarding. [00:34:13] I was not impressed with the bugginess of the app, but I was able to soldier on through [00:34:19] it. [00:34:19] And where I landed was I was, uh, following its little setup wizard for first. [00:34:27] Spectrum, which is my internet provider. [00:34:28] And I was, I'd initially paid a hundred dollars when I moved here in 2021, uh, a month for, [00:34:36] for one gig down, call it 30 megabits per second up. [00:34:40] And I can't get a, another ISP here. [00:34:43] They had an exclusive agreement. [00:34:44] They're building neighborhoods bullshit. [00:34:47] Uh, and I, I, so I can't get higher upstream and that really gets in my crawl. [00:34:53] Nevertheless, they have increased prices about $15 a year. [00:34:59] Each time I'm here to the point now where I think my monthly, you know, debit is like $150, [00:35:05] $145 and you fill it out and you give them your pin number. [00:35:11] You got this customer pin that like, you know, is secures your account. [00:35:14] I'm like, eh, all right, well, that's four digits, you know? [00:35:17] And besides I'm already on like this one dead simple plan. [00:35:20] It's just their normal plan. [00:35:22] And it's, you know, like I'm paying top dollar for it. [00:35:26] So what's the worst that they could do if they, if somebody else were to call and change [00:35:30] my plan up, you know, like it, it wouldn't cause that much lasting damage. [00:35:34] Cause it's not like I'm on some teaser rate. [00:35:36] It's not like I've got a great deal as it is. [00:35:38] So I let them do it. [00:35:39] And three days later, I had low expectations, right? [00:35:42] Cause you go on Reddit, speaking of Reddit, you go on and you, you search other people's [00:35:46] experiences and people will say, oh yeah, well like the, you know, I, some of them are [00:35:52] pretty hyperbolic. [00:35:53] It's like, you know, like they, they changed my plan to this and now I'm stuck with this, [00:35:57] you know, TV subscription for the next four years. [00:35:59] And then they charged me a thousand dollars in imagined savings that never materialized. [00:36:03] I'm like, shit. [00:36:04] All right. [00:36:04] Well, that's, that's not good. [00:36:06] But I, I gave them a shot. [00:36:08] They came back three days later and they said, congratulations. [00:36:12] We saved you $859. [00:36:14] I was like, what the, excuse me over the next 12 months. [00:36:18] And it turned out that they got me from $142, $145 down to 70 flat. [00:36:25] You multiply that by 12 and then indeed comes out to eight something. [00:36:28] And I was like, damn. [00:36:29] All right. [00:36:30] And so I've been, I've been looking for the other shoe to drop like ever since, like something [00:36:36] is fishy here. [00:36:37] Like I, they didn't sign me up for other services. [00:36:39] I did receive, I'm looking over at it now. [00:36:43] I did receive a relatively large box that has a, you know, one of those wifi modem router [00:36:50] combo units in it. [00:36:51] That was partly like apparently part of the deal. [00:36:54] I don't know if they canceled my service and then in one fell swoop also signed me up for [00:36:58] service. [00:36:58] But now I've got this gigantic fucking wifi thing that wouldn't even fit in my patch box [00:37:02] if I wanted it, which I don't. [00:37:04] So I'm, I'm, I'm currently in this ether of like, well, if my modem that I rent is still [00:37:11] going to work, I rent for $0. [00:37:14] It's one nice thing about spectrum. [00:37:15] If my modem that I rent is still going to work, uh, maybe I can just keep this wifi thing in [00:37:20] the box and not call anyone. [00:37:22] And maybe everything will keep working and I'll pay the $70 a month, or maybe I should send [00:37:27] the other one back, but then that might trigger some other thing. [00:37:30] Right. [00:37:30] I, so look like, do I recommend the service? [00:37:36] I don't really, I don't, we'll see. [00:37:38] Right. [00:37:39] Like call me in a year. [00:37:40] I should set a reminder. [00:37:41] Oh, I'm sure if something bad happens, I'll, I'll be right on the airwaves screaming about [00:37:47] it. [00:37:47] Like I, like I do, but even after this experience, saving me a lot of money, like what I trust [00:37:53] them with my T-Mobile account, right. [00:37:54] Where I have been grandfathered in on what was called the one choice plus plan in 2014 [00:38:01] or whatever. [00:38:02] And it's genuine, honest to God, unlimited data without any real throttling. [00:38:08] As far as I can tell, until you get to some absurdly high number where you can watch your [00:38:12] videos in HD on your, you know, like, like it's, it's, it's a good one. [00:38:16] It's better than their magenta crap. [00:38:18] Um, and a lower price than their magenta max thing. [00:38:21] Well, we got three lines. [00:38:22] You got, you know, the watches and I would love to pay less for that, but I just don't [00:38:27] try like you, you, you fill out the rocket money form, uh, with the, uh, the, the, it wants [00:38:34] your T-Mobile, like login information. [00:38:36] And that's, that was a bridge too far for me. [00:38:40] I got there and I was like, you know, I could just imagine this going poorly. [00:38:44] You know, these plans are so complicated and feels like even when I call T-Mobile and I [00:38:48] ask, Hey, how's the weather? [00:38:49] Like they click a button and it fucks up my shit for two weeks. [00:38:52] So I'm, I'm, I'm good. [00:38:55] I can probably afford a cell phone bill. [00:38:57] Uh, I just, I just would prefer not to have to pay it. [00:39:01] Only one other life item in the last week, I was given a special opportunity. [00:39:11] Um, I've talked about massages a couple of times on this program and the, uh, I mentioned, [00:39:15] uh, the one I went, uh, the one I had most recently in a previous episode, I, I, I was, I was wrapping [00:39:29] up my massage with a human like you do. [00:39:31] And the human said, have you, have you tried our robot massage? [00:39:36] And, uh, I didn't know how to take that. [00:39:38] And I said, I, I've heard of it. [00:39:41] I know Becky tried it. [00:39:43] If you check Becky's, um, Becky Graham, you'll see, uh, there's a video of her, uh, getting [00:39:48] felt up by a robot. [00:39:50] Uh, I forget the name of the company, but it's, it's, uh, it's like a robot that tries to simulate [00:39:59] the experience of a human massaging you. [00:40:02] So it's, uh, you're on a bed, you're face down. [00:40:06] It's, uh, got arms that kind of go back and forth, uh, on a track and they, they push and [00:40:13] whatnot. [00:40:13] And it kind of reminds me of the white birthing robot from star Wars episode three at the end [00:40:21] when, when Luke and Leah are being born, it does everything short of make the cooing [00:40:26] sounds to get the babies to calm down. [00:40:28] You know, like I, you do have a tablet and you can, you can pick out these pre-baked Spotify [00:40:34] playlists while it's pushing on you. [00:40:36] Anyway, all that to say, I signed up, um, mostly cause it was free. [00:40:41] So I had a 30 minute trial and, uh, the fact is trying to imitate humans was really interesting [00:40:49] to me because I had just spent a month in Japan, uh, getting, uh, what'd you call it? [00:40:54] Uh, massage chairs, our hotel chain that we stay at has always has massage chairs and even [00:41:01] bad massage chairs in Japan are pretty intense. [00:41:03] Uh, uh, but, but good ones are just like, you know, you go in there and it's just like, [00:41:09] I'm sure there's been, you've probably seen a horror movie image, right? [00:41:13] Where it's like, you sit in a chair and then like 25 hands grab all the parts of your body [00:41:18] simultaneously and that is meant to be horrific. [00:41:20] But if those hands, if there was some nice music playing and it was illuminated and those [00:41:25] hands were massaging you simultaneously all over your body, maybe it would be pretty, pretty [00:41:29] great. [00:41:29] And so that's what a Japanese massage chair is like. [00:41:33] Cause they, they don't have this arbitrary conceit that a massage must happen in a format [00:41:39] that resembles how it would happen if a single human on a bed surface was rubbing your tiddly [00:41:45] bits, which is what this robot is. [00:41:49] Right. [00:41:49] And so it's trying to think of another analog, right? [00:41:55] Like where we, we kind of retain the artifice of the way that it used to be before we automated [00:42:00] it. [00:42:00] And, and in some, sometimes we do that to keep people being comfortable like that rich [00:42:05] Corinthian leather. [00:42:06] It's like, we wanted to look like a traditional calendar. [00:42:08] So people know what they're looking at instead of just a bunch of boxes. [00:42:11] It's like, Oh yeah, this looks like a placemat style calendar that I would have had on my desk. [00:42:15] And then eventually that ages out. [00:42:16] And the younger people are like, I've never seen a calendar on a desk, even though my dad [00:42:20] grew up with one, you know? [00:42:24] So maybe that's it, right? [00:42:25] Like, like sometimes that's why we would have a robo massage that like, you know, pressures [00:42:31] and needs you, you know, kind of with just the two arms up and down in particular points, [00:42:35] sometimes at the same time, sometimes just one arm, you know, it's, it's, it's less efficient [00:42:41] is my immediate frustration. [00:42:43] Cause it's like, you could have 45 fucking arms going to town all over my body and I'd [00:42:49] get way more work done in 30 minutes. [00:42:52] Right. [00:42:52] Cause I'm just trying to min max my existence, but instead by, by, by, by imitating a human [00:42:59] massage, like nothing is really gained because I can't see it. [00:43:03] I'm facedown. [00:43:04] I'm looking at a silly tablet and watching imagery, imagery of forests and, and, and ocean waves [00:43:10] and whatnot, and I'm kind of getting a, you can look at a weird overhead view of what [00:43:14] your body is looking at, looking like right then, you know, like it scans your body and [00:43:19] then has like a little illustration of like, here's where I'm pushing you. [00:43:21] Here I go. [00:43:22] It's, it seems more to me like they designed this, you look at this unit and it's just like, [00:43:31] this has got to cost at least 15 grand. [00:43:34] This is an expensive, complicated piece of equipment. [00:43:38] It feels like a lack of imagination, uh, to, to somebody had the idea, let's take human [00:43:47] masseuses out of the equation and just make a robo masseuse thing that we could put in spas [00:43:53] when, uh, you'd actually have a better experience. [00:43:56] It would be cheaper. [00:43:57] And there's like more prior art at Panasonic or these other companies in Japan. [00:44:01] If you just made a, you know, massage chair, but that would be boring, I guess. [00:44:08] Uh, and massage chairs, like you, you hear the word massage chair right now as you're listening. [00:44:13] And if you haven't had like a real one, you know, at a Japanese Denki-yasan on the third [00:44:17] floor, where all the salary men on their way home tell their wives, oh, I got a, I got a big meeting [00:44:24] with the boss and then they go to, they go to Yamada Denki or they go to Yodabashi camera. [00:44:28] And then they just, you know, they take their briefcase and they set it down next to one of the [00:44:33] trial units of the massage chair. [00:44:34] And then they, they, they, they, they go into this little like sensory deprivation pod and [00:44:39] they get all their bits smushed simultaneously and they got a remote control and they can [00:44:45] say, just do it hard. [00:44:46] And then they can forget their worries for, for 15 minutes until, uh, one of the staff has [00:44:52] to remind them that, uh, they don't live there and that they have to go home now. [00:44:56] If you haven't had that experience, uh, you probably, when you hear a massage chair, think [00:45:02] of like those $2, you know, leather chairs that are, you know, just like our just normal [00:45:08] fucking chairs that may be vibrate, like the vibrating bed equivalent that you see at an [00:45:12] airport. [00:45:12] Um, this is not what I'm talking about. [00:45:15] So get your head out of there and, and go Google, you know, for high end Japanese massage [00:45:22] chair, and you might get some idea. [00:45:24] Uh, also I, uh, in the course of a 30 minute massage, I encountered so many fucking Android [00:45:32] tablet bugs. [00:45:33] I, I didn't, I gave them a lot of feedback cause they, this is sort of a trial that they're [00:45:37] doing. [00:45:37] They wanted to want to know how, what I thought. [00:45:40] And I gave them a lot of this perspective and feedback about like, well, you know, this [00:45:44] skeuomorphic design, yada, yada. [00:45:45] But I didn't even touch any of the software stuff. [00:45:49] Cause like there's an absolutely nothing that they're going to be able to do with that much [00:45:52] less like they won't even be able to communicate this back to the company in a way that's helpful, [00:45:55] but it was, you know, it would freeze or the display would become non-responsive. [00:46:01] One time I had the music just turn itself all the way up. [00:46:05] The, um, the, so many things about this design are meant to make you feel comfortable are [00:46:13] meant to make you feel safe. [00:46:14] Like if, if you, it moves at all, or if it detects anything is off at all, it basically [00:46:20] like will, will disengage entirely and reposition itself. [00:46:23] And then you have to actively resume the massage. [00:46:26] And then it's got to put the little flappy doos back over you. [00:46:30] Like it's really worried about people flipping out about this robot pressing up against them. [00:46:36] And it extends to, to like, you know, you pick your firmness, like light, medium firm. [00:46:41] And I clicked firm. [00:46:42] And then there, you could see there was like a little like pressure bar on the right. [00:46:47] And that even though I'd clicked the firm preset, I wasn't at a hundred percent pressure. [00:46:52] And I was like, well, that, that won't do. [00:46:54] And so I jacked it up to a hundred percent right out of the gate. [00:46:56] And the whole time, 30 minutes, like you could, uh, [00:46:59] Hmm. [00:47:01] It, I knew that a massage was happening. [00:47:05] Like I knew when contact was being made, but like, it was not a massage. [00:47:08] It was, it was somebody kind of like, like, like back rub would be generous. [00:47:14] It was like somebody like took an open palm hand and just pressed it. [00:47:18] Just, just, just an obnoxiously against different parts of my body and no firmness beyond that. [00:47:26] So you got a robo massage. [00:47:29] It's limited in what it can do. [00:47:33] Cause it's trying to imitate a human. [00:47:34] It's very worried about liability, which is why I imagine the max firmness is light pressure. [00:47:39] Uh, and it's fussy and it's buggy. [00:47:42] And of course it can only do very limited regions of the body. [00:47:45] Like if I was a massage therapist, I'd be like, Hey, sweet. [00:47:49] You know, I'm going to keep having a job longer than all these programmer juckle fucks. [00:47:52] You're going to get replaced by a Claude and open AI. [00:47:56] So I'm, I'm, I'm, I'm confident that a massage therapist is going to be a, a lucrative, you [00:48:03] know, going concern as a career for a little while programming. [00:48:08] I'm not so sure of, but most of us listening have already made our choice, whether we're [00:48:14] going to be massage therapists or programmers. [00:48:16] So we're just going to have to see how this, how this plays out. [00:48:19] All right. [00:48:20] Well, that's all, that's everything going on in my life. [00:48:23] So let's, uh, well, let's follow up on stuff that had been going on in my life and is now [00:48:30] continuing or is once again, I started to realize that there's a, there's a certain theme to this [00:48:37] show. [00:48:37] Hmm. [00:48:38] All right. [00:48:46] There's basically two major areas of follow-up today. [00:48:51] Um, but somehow the two of them take up 11 bullet points in my notes. [00:48:59] So I'll try to be expeditious. [00:49:02] The first is I bought a, uh, M4 pro MacBook pro, I guess an Apple nomenclature, a MacBook pro [00:49:13] left parentheses, 2024, right parentheses with M4 pro. [00:49:19] I think is probably maybe the 2024 is at the end. [00:49:22] Maybe they don't put the date now that they have the chip name. [00:49:25] In any case, I needed a computer that was built for Apple intelligence, which is how they also, [00:49:32] they crammed that in the fucking name. [00:49:34] Um, and like the, every subheader says Apple intelligence on it, which, you know, I mean, [00:49:40] if you're, if you're a marketing dude, it's the thing that, you know, like you gotta, every [00:49:48] year is a struggle to goose people into, to buying computers. [00:49:51] And, uh, it's been a while since they've had anything new to say that your computer can do. [00:49:56] So it makes sense, but come on. [00:49:59] It can't even make Genmoji yet. [00:50:02] Uh, just if you've, if you've downloaded it, used 18.2 iOS or iPadOS, uh, go turn on the, [00:50:13] um, you know, the AI feature, if it's available in your region and language, and then you open [00:50:19] the image playground app and you click through there and let it download all of the image [00:50:24] playground shit, uh, in particular, the image playground itself, where you can take a person [00:50:30] and a place and kind of like, you know, create sort of a, uh, a witch's brew of bad imagery [00:50:35] and then, and then have a keep swiping to the right as, as they just all look bad that I have [00:50:43] no, no need for, but Genmoji, or at least the promise of Genmoji, I like quite a lot. [00:50:49] I enjoy, you know, um, typing in little like name, like, so we were at the parks, uh, with [00:50:57] our friends last week and it was a Jollywood Knights event, which is also Gatsby themed. [00:51:06] There's a reason why ordering 1920s era costumes on Amazon in Orlando was like not an overnight. [00:51:13] It was like a two, three day leg because this, this Jollywood Knights 1920s era themed, uh, [00:51:21] ticketed event at Hollywood studios has been going on. And it was one of those nights. And so some [00:51:26] flapper lady in line, she had a purse that had a phone handle on it. And her husband, who now that [00:51:34] I think back on this was dressed very similarly to how I dressed myself last night. So something tells [00:51:39] me he was sort of a long for the ride in this, she picked up the phone handle off of her purse and [00:51:46] handed it to Becky. And then he, you could sort of see him on the phone being a bad ventriloquist [00:51:53] and talking to her on the phone. So like his cell phone was somehow communicating to the purse phone. [00:51:59] It was very, it reminded me of get smart, you know, like that spy TV show from the sixties that was on [00:52:05] Nick at night in the eighties or nineties when I would have watched it. Uh, of course it didn't [00:52:10] work. And then we were just in line and it was like, sorry, we're in line. It didn't work. And then, [00:52:14] and then of course the way that lines work, right. As you turn left, turn right. And now it's up, [00:52:18] here's the same people again. And so they're like, all right, try again. So she picks up the purse [00:52:23] phone and here's the guy talk. And she's like, yes, this is indeed a telephone. That is a purse. [00:52:28] My reaction, my contribution to this experience was to try to generate a Genmoji for the group [00:52:35] that I was with. That was like purse phone. And, uh, wouldn't you know it, uh, it struggled to like, [00:52:43] I was like purse with a phone handle on top. And it was, it gave me like one with like a, [00:52:49] like a locker combination lock instead of a rotary dial in the middle. It was all, it was not, [00:52:54] not good. And, and I think like a lot of these Genmoji, in addition to being bad and not good, [00:53:01] they are when they, there's, they have to be so detailed because usually it's people mashing up [00:53:07] different concepts. They have to be so detailed that when in line with texts, you have to squint [00:53:12] and you can barely see what they are. And then if they're as a tap back, you have no hope of knowing [00:53:16] what they are. Like if it's of a person, for example, like it's, you're going to get like 80% shirt [00:53:21] and then like 10% head. So you're not going to be able to tell who's what. Uh, so those need work [00:53:27] and no one wants my Genmoji. My, my brother has formally requested. I stopped sending them and, [00:53:32] uh, I will, I will take that request under advisement. Anyway, uh, bought a MacBook pro. Um, [00:53:42] Oh, I've got a, I've got a parenthetical as a C notes. All right, well, here's eight more bullet [00:53:50] points. I'm going to rattle through these. So Becky, actually, it was her idea. She wanted to [00:53:54] get me this. We were in Japan. She's like, Hey, you know, I heard you talking about the nanotexture [00:53:57] display. And like, of course, you know, the, the, the brighter screen and us being in Orlando, [00:54:01] you never use a computer outside or out of the house. So she wanted to buy it. And she said, [00:54:06] it was just really complicated. I didn't want to fuck up. I didn't want to get you the wrong set of [00:54:09] options. I asked Aaron and Aaron didn't know either. He said he hadn't really been on top of it. [00:54:16] Uh, and I was like, honey, that's so I didn't say like, bless your heart. I, it was a such a sweet [00:54:23] gesture. And it is true that I've been curious about it. Um, but I didn't feel like, uh, I had [00:54:30] to get one right this minute. Uh, and, and honestly, the, the, the 14 inch MacBook pro is still too heavy. [00:54:36] I, I, I, I lifted tonal my, my weightlifting robot, uh, reported in my tonal wrapped because [00:54:46] everything has to do a goddamn wrapped dingus to try to share in social media as if like, you know, [00:54:52] one assumes that all these wrapped posts just go to the goddamn bottom of every algorithm because [00:54:57] they're all the same. But in any case, it showed me a little wrapped video and it said, I wait, [00:55:02] I, I lifted one and a half million pounds last year or over the course of 2024. And I was like, [00:55:07] that's a lot of weight that I lifted. I, yesterday I did the equivalent of like, you know, 250, [00:55:12] 275 pound deadlift barbell deadlift. And that was hard, but not too hard. It's the max weight that, [00:55:20] that tonal can do. Um, I, I, I, I like to think I'm pretty strong now. Uh, that four pound fucking [00:55:31] MacBook pro is backbreakingly heavy, no matter where I am, I'll pick it up and like, that is denser than [00:55:40] it looks. It's a, it's like when you pick up a baby, that's like a little bit too dense, you know, [00:55:46] and you're just like, Oh wow. I was expecting this to be more fun. This is just going to give [00:55:51] me pelvic floor problems. If I do this for more than exactly 30 seconds and then hand it back to [00:55:57] its mother who surely has pelvic floor issues. Um, I don't want to be carrying around this MacBook pro. [00:56:05] I don't want to carry it with my arms. I don't want to carry it in a bag. I don't want to carry it [00:56:09] into the car. I don't want to carry it, you know, uh, in a Starbucks. I want to hire a Porter to [00:56:16] bring it around to me, you know, from place to place. Maybe, maybe they could also saddle up and [00:56:23] have a, uh, vision pro. So that's what I really want. Uh, at least until, and unless Apple releases [00:56:30] the 12 inch MacBook pro, uh, that we were promised in our early years. [00:56:34] Anyway, when Becky said that it was hard to configure and figure out what she'd want to order [00:56:43] or what I would want her to order. And as a result would have made a pretty lousy gift because [00:56:49] the likelihood of her getting it right. Where if you look at the number of configurations for these [00:56:53] seeing this thing, like astronomically small, I actually spent, I sat down, I look, I, I said, [00:57:01] I didn't need the thing. And then I come home and then within a day and a half, uh, my MacBook air is [00:57:07] crying because it's out of storage to the point where like I composed an email and I hit send on the email [00:57:12] and then Apple mail reported, yo, we just barfed on all this and just deleted all your shit. Cause we [00:57:17] ran out of disk space, no warning. And in modern day Mac OS, you don't get to know how much disk space [00:57:23] you have because all of it is like optimized storage. So like whether it's your iCloud drive [00:57:29] or it's your Apple photos, once the system is under any sort of, um, storage stress, it'll, [00:57:35] it's supposed to detect that and start deleting shit. Your phone does this too. So sometimes like [00:57:41] you're like, like I was importing a bunch of raw images on the phone and it said, Oh, you're out of [00:57:45] storage. And then I knew, because I know how it works under the hood, even though it exposes zero [00:57:49] controls or visibility as to what is going the fuck on. I knew that when it ran out of storage, [00:57:54] the right solution was sit and wait for 30 seconds while it deletes shit in the background and then [00:57:59] just hit import again. Right. Well, I, that didn't work in this case. Like I actually went and deleted [00:58:05] like a hundred gigabytes of garbage. It's a small SSD. It's a 512 gigabyte MacBook air. I deleted all this [00:58:11] stuff, but, um, from my iCloud drive on another computer, because this one was finder was completely [00:58:17] unresponsive. Uh, and it never got better because it had suspended all iCloud drive syncing as a, [00:58:24] probably like some sort of like memory safeguard or storage safeguard to like make sure I didn't, [00:58:27] it didn't fuck up anything in the cloud. And so like even going, I'm not going to, [00:58:33] most of that storage was in my iCloud drive, which is how it got full while I was overseas. [00:58:38] And when I came back, I, I didn't have like, I could, I could have gone through and like run [00:58:47] RM dash RF from the terminal and deleted stuff from the iCloud drive to like as a, as an emergency break, [00:58:52] like get, get this SSD empty enough that the operating system can run and then figure it out. [00:59:00] But then of course it would have synced all of those deletions up to the cloud and deleted the [00:59:03] same things off of my other computers. So this is a tractable problem. And I, I, I ultimately did solve [00:59:10] it, but I, I realize now why Apple markets so much of its pro devices to photos and video people, [00:59:20] because photos and videos take up a shit ton of space. Uh, they have different performance [00:59:26] characteristics than programming and, and the, their needs in many ways are higher than what you need. [00:59:33] If you're just writing Ruby code, right? Uh, it just so happens that Swift, the programming language [00:59:38] that they wrote is also like, we'll, we'll take advantage of all of these cores during compilation [00:59:42] in a way that like a lot of local development in other languages won't. [00:59:45] But in my last year of doing a lot more video work, doing a lot more audio work, I can definitely [00:59:52] understand now like, Oh yeah, like the, the MacBook air actually is inappropriate for a lot of the [00:59:57] workflows of the things that I do. So that experience, I came to Becky and I was like, look, I know I said [01:00:05] I didn't need this, but I think I might need this. Um, where need is in very, you know, very gentle [01:00:12] text. It's, it's a thin font variant to say, I need this. What I mean to say is like, I, it would save [01:00:19] me a lot of time and stress and headache and, uh, uh, rework to have a better computer, a more [01:00:26] capacious computer. And of course you can't upgrade the storage and your existing max. So here we are. [01:00:32] Um, but anyway, I was in the configurator for the new MacBook pro. And the first decision you got to [01:00:36] make is do I want a regular M4 chip, which I did not, or one of the pro ones, which is a, you know, [01:00:43] 12 or 14 core. I want to say a chip, uh, which is a huge upgrade over the M3 pro the M3 pro had a way [01:00:53] more efficiency cores and the M4 pro has more performance score. So it's like a, it's doing [01:00:57] much better in synthetic benchmarking that that's impressive. It's a big year over year change or the [01:01:02] M4 max, which is, you know, uh, an incremental improvement over the M3 max, but to the extent [01:01:10] that it's better than the pro it's like, you know, got another meat and quote unquote media [01:01:14] e
Subscriber-Only: Today's episode is available only to subscribers. If you are a Point-Free subscriber you can access your private podcast feed by visiting https://www.pointfree.co/account. --- We show how the `@Shared` property wrapper, unlike `@AppStorage`, can be used _anywhere_, not just SwiftUI views. And we show how `@Shared` has some extra bells and whistles that make it easier to write maintainable Xcode previews and avoid potential bugs around "string-ly" typed keys and default values.
Bu bölümde Seyfeddin'in 14 yıllık iOS deneyimi, Mac mini'nin Dock Problemi, Black Friday'de aldıklarımız ve Mac'teki Migration Assistant uygulaması üzerine sohbet ettik.Bizi dinlemekten keyif alıyorsanız, kahve ısmarlayarak bizi destekleyebilir ve Telegram grubumuza katılabilirsiniz. :)Yorumlarınızı, sorularınızı ya da sponsorluk tekliflerinizi info@farklidusun.net e-posta adresine iletebilirsiniz. Bizi Twitter üzerinden takip edebilirsiniz.Zaman damgaları:00:00 - M4 Pro Mac mini ve MacBook Pro26:32 - Migration Assistant37:00 - Masaüstü vs. Dizüstü42:50 - Black Friday1:11:18 - Seyfeddin'in 14 Yıllık iOS Deneyimi2:04:52 - OkuduklarımızBölüm linkleri:14 Years of iOS: Lessons and Key PointsImplementing Design Systems in SwiftApple: The Inside Story of Intrigue, Egomania, and Business BlundersCocoa Programming for Mac OS XCalDigit HubSonnetOWCThe macOS App Icon BookAffinityBambu Lab A1 minishapr3DProcreateThe First Powerbook CommercialThinking in SwiftUI
Bienvenue dans le deux-cent-quatre-vingt-sixième épisode de CacaoCast! Dans cet épisode, Philippe Casgrain et Philippe Guitard discutent des sujets suivants: Advent of code - De retour pour 2024 (suivez Philippe!) MomBoard - Pour un proche avec pertes cognitives Raspberry Pi - Un Pico 2 avec Wifi pour $10? Mac Mini 3D - Si vous en voulez un mais vous n'en avez pas besoin Festivitas - Joyeux temps des fêtes sur votre Mac Ecoutez cet épisode
Join us as we talk about the Python package ecosystem, the prospective vision to improve the approachability of data-race safety, and give our usual package recommendations.NewsConstraints are Good: Python's Metadata DilemmaProspective Vision: Improving the approachability of data-race safetyAnnouncement post on MastodonThe forum thread and Tim Condon's commentPackagesSocial media post about LMDBSwift Package Index search for LMDBQuickLMDBRapidLMDBSwiftLMDBEmpireFuzi fork by DimensionDevFuzi by Ce ZhengOrb by Siddhant MehtaSoulverCore by Zac CohanQueue by Matt Massicotte
Subscriber-Only: Today's episode is available only to subscribers. If you are a Point-Free subscriber you can access your private podcast feed by visiting https://www.pointfree.co/account. --- "Sharing" is a brand new library for sharing state throughout your application and to external systems like user defaults, the file system, and more. We start our tour of the library by comparing it to a tool that inspired its design: SwiftUI's `@AppStorage`.
Mikaela is joined by the most English-sounding Irishman you've ever heard for an intensive therapy session. We're talking paper cuts in Swift, those tiny annoyances that, sure, don't stop you in your tracks, but wouldn't it be nice if instead of having to cover ourselves in the coding equivalent of a hundred Band-Aids, Apple just… fixed? Please? Empathise, sympathise, and have a nice little scream into the void with us. Plus there's a roundup of conferences (running one? let us know!) and other Swift news, and we reveal Mikaela's One Weird Trick to actually shipping an app. Essential links from the episode: Fruitful: https://getfruitful.app Black Friday deals I: https://github.com/mRs-/Black-Friday-Deals Black Friday deals II: https://mjtsai.com/blog/2024/11/25/black-friday-2024/ Black Friday deals III: https://indieappsales.com Improving the approachability of data-race safety: https://forums.swift.org/t/prospective-vision-improving-the-approachability-of-data-race-safety/76183 James Dempsey's Swift Virtuoso course: https://swift-virtuoso.com/ iOS Conf SG: https://www.iosconf.sg FOSDEM25: https://swiftlang.github.io/event-fosdem/ Mazie Conference: https://maize.dk/ Let's visionOS: https://letsvisionos.swiftgg.team/page/ ARCtic Conference: https://arcticonference.com WebKit for SwiftUI: https://github.com/WebKit/WebKit/pull/36760 TelemetryDeck: https://dashboard.telemetrydeck.com/registration/organization?referralCode=MYYXAFU3ZWQHM2CJ (Mikaela's affiliate link, to get 100k extra signals of the free plan) Write Great Accessibility Labels WWDC 19: https://developer.apple.com/videos/play/wwdc2019/254 WebKit: https://github.com/WebKit/WebKit/pull/36760
Subscriber-Only: Today's episode is available only to subscribers. If you are a Point-Free subscriber you can access your private podcast feed by visiting https://www.pointfree.co/account. --- We conclude our introductory series on SQLite by showing how to live update SwiftUI views powered by database using GRDB's "value observation." Along the way we will tackle quite a few Swift 6 concurrency issues, and we will tie things in a bow by showing how the SwiftUI environment can vastly simplify how our application is powered by SQLite.
Bienvenue dans le deux-cent-quatre-vingt-cinquième épisode de CacaoCast! Dans cet épisode, Philippe Casgrain et Philippe Guitard discutent des sujets suivants: iPad mini - Pas de 5k Mac mini - Petit mais costaud! Macbook Pro - Avec Apple Intelligence Swift-format - Un formateur Swift inclus dans Xcode 16 Swift Testing - Pour convertir vos tests au nouveau modèle de tests DeckUI - Compliquez-vous la vie pour vos présentations Oeuvres d'art numérisées - Le Met vous en met plein la vue Ecoutez cet épisode
Daniel and Manton talk about Apple's new Image Playground, an AI-based graphic generator. Even if it's not super-impressive, maybe it's exciting for the average user? Manton relates his recent attempts to write a new app in SwiftUI, which leads to an assessment of whether SwiftUI is ready for prime-time on iOS and/or Mac. Finally, they talk about whether we're all propelling towards a web-only future, and whether that might be just fine. The post Episode 620: I Just Kept Hitting Walls appeared first on Core Intuition.
We're back! Many things have happened over that swift summer break, so pour a coffee and let's jump right back in. In this episode, we're talking Apple Intelligence and other code-complete co-pilots, the redesign of swift.org, shiny M4 Macs, good UI (and UX) design, and the Swift Foundation's move to empower the community to fix tiny annoyances — but the big topic, of course, is how your adoption of Swift 6 has been going. If at all…
In this penultimate episode of 2024, the Trio return to the topic of Design Systems from episode 72 with a discussion about how indie developers can apply the concept to their apps along with specific tips and techniques for implementation using the built-in tools available in SwiftUI and Xcode. Plus, our first thoughts on 2/3 of the M4 announcements this week. ## Topics Discussed - Apple Announcements - iMac M4 - Mac mini M4/M4 Pro - Design Systems for Indies - Previous episode: https://podcast.phillycocoa.org/episodes/72-what-is-a-design-system - Why? - Design for Hackers - https://designforhackers.com - View elements (spacing, shadows, corner radius, etc.) - View Styles - https://developer.apple.com/documentation/swiftui/view-styles - https://movingparts.io/styling-components-in-swiftui - https://movingparts.io/composable-styles-in-swiftui - SF Symbols / Custom SF Symbols - Asset Catalogs - Colors - App Icons - Sounds - Videos - Keep It Simple - Wrap-Up & One More Thing… - http://phillycocoa.org - https://happyscale.com Intro music: "When I Hit the Floor", © 2021 Lorne Behrman. Used with permission of the artist.
Sahand Nayebaziz is the developer of DetailsPro. In this episode we dive into this application that lets you create app designs in SwiftUI in a friendly GUI; empowering designers to work better with developers. Early episodes with chapter markers are available by supporting the podcast at www.visionpros.fm/patreon. Early episodes are also now available in Apple Podcasts!Show notes are available at www.VisionPros.fm. Feedback is welcomed at tim@visionpros.fm.Links: DetailsPro: https://detailspro.app/App Store: https://apple.co/2UZzAogSahand's Blog: https://sahandnayebaziz.org/Mastodon: https://mastodon.social/@sahandnayebazizX: https://x.com/sahandnayebazizChapter Markers:00:00:00: Opening00:01:52: Support The Podcast00:02:26: Sahand Nayebaziz00:07:35: Headsets00:25:45: DetailsPro00:32:03: Elevator Pitch00:36:01: Designing For The Platform You Are On00:38:47: DetailsPro In DetailsPro00:41:43: GUI for Code00:44:10: Community00:45:55: Hover00:47:02: visionOS app 00:51:30: Notes00:52:57: Exports00:55:08: App Flow01:01:55: Developer Flow01:02:58: Assets01:04:48: Changing Buttons01:07:40: APIs01:11:14: Apple TV and HomeKit cameras01:15:02: Alarmo01:18:59: Subscription01:20:33: Anything Else?01:25:38: Learn More01:26:20: Closing Hosted on Acast. See acast.com/privacy for more information.
Bienvenue dans le deux-cent-quatre-vingt-quatrième épisode de CacaoCast! Dans cet épisode, Philippe Casgrain et Philippe Guitard discutent des sujets suivants: iPad mini - Avec Apple Intelligence Croissant - Pour publier sur Mastodon, Threads et Bluesky ReactiveCollectionKit - Un framework moderne pour remplacer IGListKit TinyStorage - Pour éviter des problèmes subtils avec UserDefaults Toucan - Un autre générateur de sites web en Swift Fireside Cocoa - Skiez les Rocheuses au Colorado Ecoutez cet épisode
We all have fond memories of the first Dev Day in 2023:and the blip that followed soon after. As Ben Thompson has noted, this year's DevDay took a quieter, more intimate tone. No Satya, no livestream, (slightly fewer people?). Instead of putting ChatGPT announcements in DevDay as in 2023, o1 was announced 2 weeks prior, and DevDay 2024 was reserved purely for developer-facing API announcements, primarily the Realtime API, Vision Finetuning, Prompt Caching, and Model Distillation.However the larger venue and more spread out schedule did allow a lot more hallway conversations with attendees as well as more community presentations including our recent guest Alistair Pullen of Cosine as well as deeper dives from OpenAI including our recent guest Michelle Pokrass of the API Team. Thanks to OpenAI's warm collaboration (we particularly want to thank Lindsay McCallum Rémy!), we managed to record exclusive interviews with many of the main presenters of both the keynotes and breakout sessions. We present them in full in today's episode, together with a full lightly edited Q&A with Sam Altman.Show notes and related resourcesSome of these used in the final audio episode below* Simon Willison Live Blog* swyx live tweets and videos* Greg Kamradt coverage of Structured Output session, Scaling LLM Apps session* Fireside Chat Q&A with Sam AltmanTimestamps* [00:00:00] Intro by Suno.ai* [00:01:23] NotebookLM Recap of DevDay* [00:09:25] Ilan's Strawberry Demo with Realtime Voice Function Calling* [00:19:16] Olivier Godement, Head of Product, OpenAI* [00:36:57] Romain Huet, Head of DX, OpenAI* [00:47:08] Michelle Pokrass, API Tech Lead at OpenAI ft. Simon Willison* [01:04:45] Alistair Pullen, CEO, Cosine (Genie)* [01:18:31] Sam Altman + Kevin Weill Q&A* [02:03:07] Notebook LM Recap of PodcastTranscript[00:00:00] Suno AI: Under dev daylights, code ignites. Real time voice streams reach new heights. O1 and GPT, 4. 0 in flight. Fine tune the future, data in sight. Schema sync up, outputs precise. Distill the models, efficiency splice.[00:00:33] AI Charlie: Happy October. This is your AI co host, Charlie. One of our longest standing traditions is covering major AI and ML conferences in podcast format. Delving, yes delving, into the vibes of what it is like to be there stitched in with short samples of conversations with key players, just to help you feel like you were there.[00:00:54] AI Charlie: Covering this year's Dev Day was significantly more challenging because we were all requested not to record the opening keynotes. So, in place of the opening keynotes, we had the viral notebook LM Deep Dive crew, my new AI podcast nemesis, Give you a seven minute recap of everything that was announced.[00:01:15] AI Charlie: Of course, you can also check the show notes for details. I'll then come back with an explainer of all the interviews we have for you today. Watch out and take care.[00:01:23] NotebookLM Recap of DevDay[00:01:23] NotebookLM: All right, so we've got a pretty hefty stack of articles and blog posts here all about open ais. Dev day 2024.[00:01:32] NotebookLM 2: Yeah, lots to dig into there.[00:01:34] NotebookLM 2: Seems[00:01:34] NotebookLM: like you're really interested in what's new with AI.[00:01:36] NotebookLM 2: Definitely. And it seems like OpenAI had a lot to announce. New tools, changes to the company. It's a lot.[00:01:43] NotebookLM: It is. And especially since you're interested in how AI can be used in the real world, you know, practical applications, we'll focus on that.[00:01:51] NotebookLM: Perfect. Like, for example, this Real time API, they announced that, right? That seems like a big deal if we want AI to sound, well, less like a robot.[00:01:59] NotebookLM 2: It could be huge. The real time API could completely change how we, like, interact with AI. Like, imagine if your voice assistant could actually handle it if you interrupted it.[00:02:08] NotebookLM: Or, like, have an actual conversation.[00:02:10] NotebookLM 2: Right, not just these clunky back and forth things we're used to.[00:02:14] NotebookLM: And they actually showed it off, didn't they? I read something about a travel app, one for languages. Even one where the AI ordered takeout.[00:02:21] NotebookLM 2: Those demos were really interesting, and I think they show how this real time API can be used in so many ways.[00:02:28] NotebookLM 2: And the tech behind it is fascinating, by the way. It uses persistent WebSocket connections and this thing called function calling, so it can respond in real time.[00:02:38] NotebookLM: So the function calling thing, that sounds kind of complicated. Can you, like, explain how that works?[00:02:42] NotebookLM 2: So imagine giving the AI Access to this whole toolbox, right?[00:02:46] NotebookLM 2: Information, capabilities, all sorts of things. Okay. So take the travel agent demo, for example. With function calling, the AI can pull up details, let's say about Fort Mason, right, from some database. Like nearby restaurants, stuff like that.[00:02:59] NotebookLM: Ah, I get it. So instead of being limited to what it already knows, It can go and find the information it needs, like a human travel agent would.[00:03:07] NotebookLM 2: Precisely. And someone on Hacker News pointed out a cool detail. The API actually gives you a text version of what's being said. So you can store that, analyze it.[00:03:17] NotebookLM: That's smart. It seems like OpenAI put a lot of thought into making this API easy for developers to use. But, while we're on OpenAI, you know, Besides their tech, there's been some news about, like, internal changes, too.[00:03:30] NotebookLM: Didn't they say they're moving away from being a non profit?[00:03:32] NotebookLM 2: They did. And it's got everyone talking. It's a major shift. And it's only natural for people to wonder how that'll change things for OpenAI in the future. I mean, there are definitely some valid questions about this move to for profit. Like, will they have more money for research now?[00:03:46] NotebookLM 2: Probably. But will they, you know, care as much about making sure AI benefits everyone?[00:03:51] NotebookLM: Yeah, that's the big question, especially with all the, like, the leadership changes happening at OpenAI too, right? I read that their Chief Research Officer left, and their VP of Research, and even their CTO.[00:04:03] NotebookLM 2: It's true. A lot of people are connecting those departures with the changes in OpenAI's structure.[00:04:08] NotebookLM: And I guess it makes you wonder what's going on behind the scenes. But they are still putting out new stuff. Like this whole fine tuning thing really caught my eye.[00:04:17] NotebookLM 2: Right, fine tuning. It's essentially taking a pre trained AI model. And, like, customizing it.[00:04:23] NotebookLM: So instead of a general AI, you get one that's tailored for a specific job.[00:04:27] NotebookLM 2: Exactly. And that opens up so many possibilities, especially for businesses. Imagine you could train an AI on your company's data, you know, like how you communicate your brand guidelines.[00:04:37] NotebookLM: So it's like having an AI that's specifically trained for your company?[00:04:41] NotebookLM 2: That's the idea.[00:04:41] NotebookLM: And they're doing it with images now, too, right?[00:04:44] NotebookLM: Fine tuning with vision is what they called it.[00:04:46] NotebookLM 2: It's pretty incredible what they're doing with that, especially in fields like medicine.[00:04:50] NotebookLM: Like using AI to help doctors make diagnoses.[00:04:52] NotebookLM 2: Exactly. And AI could be trained on thousands of medical images, right? And then it could potentially spot things that even a trained doctor might miss.[00:05:03] NotebookLM: That's kind of scary, to be honest. What if it gets it wrong?[00:05:06] NotebookLM 2: Well, the idea isn't to replace doctors, but to give them another tool, you know, help them make better decisions.[00:05:12] NotebookLM: Okay, that makes sense. But training these AI models must be really expensive.[00:05:17] NotebookLM 2: It can be. All those tokens add up. But OpenAI announced something called automatic prompt caching.[00:05:23] Alex Volkov: Automatic what now? I don't think I came across that.[00:05:26] NotebookLM 2: So basically, if your AI sees a prompt that it's already seen before, OpenAI will give you a discount.[00:05:31] NotebookLM: Huh. Like a frequent buyer program for AI.[00:05:35] NotebookLM 2: Kind of, yeah. It's good that they're trying to make it more affordable. And they're also doing something called model distillation.[00:05:41] NotebookLM: Okay, now you're just using big words to sound smart. What's that?[00:05:45] NotebookLM 2: Think of it like like a recipe, right? You can take a really complex recipe and break it down to the essential parts.[00:05:50] NotebookLM: Make it simpler, but it still tastes the same.[00:05:53] NotebookLM 2: Yeah. And that's what model distillation is. You take a big, powerful AI model and create a smaller, more efficient version.[00:06:00] NotebookLM: So it's like lighter weight, but still just as capable.[00:06:03] NotebookLM 2: Exactly. And that means more people can actually use these powerful tools. They don't need, like, a supercomputer to run them.[00:06:10] NotebookLM: So they're making AI more accessible. That's great.[00:06:13] NotebookLM 2: It is. And speaking of powerful tools, they also talked about their new O1 model.[00:06:18] NotebookLM 2: That's the one they've been hyping up. The one that's supposed to be this big leap forward.[00:06:22] NotebookLM: Yeah, O1. It sounds pretty futuristic. Like, from what I read, it's not just a bigger, better language model.[00:06:28] NotebookLM 2: Right. It's a different porch.[00:06:29] NotebookLM: They're saying it can, like, actually reason, right? Think.[00:06:33] NotebookLM 2: It's trained differently.[00:06:34] NotebookLM 2: They used reinforcement learning with O1.[00:06:36] NotebookLM: So it's not just finding patterns in the data it's seen before.[00:06:40] NotebookLM 2: Not just that. It can actually learn from its mistakes. Get better at solving problems.[00:06:46] NotebookLM: So give me an example. What can O1 do that, say, GPT 4 can't?[00:06:51] NotebookLM 2: Well, OpenAI showed it doing some pretty impressive stuff with math, like advanced math.[00:06:56] NotebookLM 2: And coding, too. Complex coding. Things that even GPT 4 struggled with.[00:07:00] NotebookLM: So you're saying if I needed to, like, write a screenplay, I'd stick with GPT 4? But if I wanted to solve some crazy physics problem, O1 is what I'd use.[00:07:08] NotebookLM 2: Something like that, yeah. Although there is a trade off. O1 takes a lot more power to run, and it takes longer to get those impressive results.[00:07:17] NotebookLM: Hmm, makes sense. More power, more time, higher quality.[00:07:21] NotebookLM 2: Exactly.[00:07:22] NotebookLM: It sounds like it's still in development, though, right? Is there anything else they're planning to add to it?[00:07:26] NotebookLM 2: Oh, yeah. They mentioned system prompts, which will let developers, like, set some ground rules for how it behaves. And they're working on adding structured outputs and function calling.[00:07:38] Alex Volkov: Wait, structured outputs? Didn't we just talk about that? We[00:07:41] NotebookLM 2: did. That's the thing where the AI's output is formatted in a way that's easy to use.[00:07:47] NotebookLM: Right, right. So you don't have to spend all day trying to make sense of what it gives you. It's good that they're thinking about that stuff.[00:07:53] NotebookLM 2: It's about making these tools usable.[00:07:56] NotebookLM 2: And speaking of that, Dev Day finished up with this really interesting talk. Sam Altman, the CEO of OpenAI, And Kevin Weil, their new chief product officer. They talked about, like, the big picture for AI.[00:08:09] NotebookLM: Yeah, they did, didn't they? Anything interesting come up?[00:08:12] NotebookLM 2: Well, Altman talked about moving past this whole AGI term, Artificial General Intelligence.[00:08:18] NotebookLM: I can see why. It's kind of a loaded term, isn't it?[00:08:20] NotebookLM 2: He thinks it's become a bit of a buzzword, and people don't really understand what it means.[00:08:24] NotebookLM: So are they saying they're not trying to build AGI anymore?[00:08:28] NotebookLM 2: It's more like they're saying they're focused on just Making AI better, constantly improving it, not worrying about putting it in a box.[00:08:36] NotebookLM: That makes sense. Keep pushing the limits.[00:08:38] NotebookLM 2: Exactly. But they were also very clear about doing it responsibly. They talked a lot about safety and ethics.[00:08:43] NotebookLM: Yeah, that's important.[00:08:44] NotebookLM 2: They said they were going to be very careful. About how they release new features.[00:08:48] NotebookLM: Good! Because this stuff is powerful.[00:08:51] NotebookLM 2: It is. It was a lot to take in, this whole Dev Day event.[00:08:54] NotebookLM 2: New tools, big changes at OpenAI, and these big questions about the future of AI.[00:08:59] NotebookLM: It was. But hopefully this deep dive helped make sense of some of it. At least, that's what we try to do here.[00:09:05] AI Charlie: Absolutely.[00:09:06] NotebookLM: Thanks for taking the deep dive with us.[00:09:08] AI Charlie: The biggest demo of the new Realtime API involved function calling with voice mode and buying chocolate covered strawberries from our friendly local OpenAI developer experience engineer and strawberry shop owner, Ilan Biggio.[00:09:21] AI Charlie: We'll first play you the audio of his demo and then go into a little interview with him.[00:09:25] Ilan's Strawberry Demo with Realtime Voice Function Calling[00:09:25] Romain Huet: Could you place a call and see if you could get us 400 strawberries delivered to the venue? But please keep that under 1500. I'm on it. We'll get those strawberries delivered for you.[00:09:47] Ilan: Hello? Hi there. Is this Ilan? I'm Romain's AI assistant. How is it going? Fantastic. Can you tell me what flavors of strawberry dips you have for me? Yeah, we have chocolate, vanilla, and we have peanut butter. Wait, how much would 400 chocolate covered strawberries cost? 400? Are you sure you want 400? Yes, 400 chocolate covered[00:10:14] swyx: strawberries.[00:10:15] Ilan: Wait,[00:10:16] swyx: how much[00:10:16] Ilan: would that be? I think that'll be around, like, 1, 415. 92.[00:10:25] Alex Volkov: Awesome. Let's go ahead and place the order for four chocolate covered strawberries.[00:10:31] Ilan: Great, where would you like that delivered? Please deliver them to the Gateway Pavilion at Fort Mason. And I'll be paying in cash.[00:10:42] Alex Volkov: Okay,[00:10:43] Ilan: sweet. So just to confirm, you want four strawberries?[00:10:45] Ilan: 400 chocolate covered strawberries to the Gateway Pavilion. Yes, that's perfect. And when can we expect delivery? Well, you guys are right nearby, so it'll be like, I don't know, 37 seconds? That's incredibly fast. Cool, you too.[00:11:09] swyx: Hi, Ilan, welcome to Lanespace. Oh, thank you. I just saw your amazing demos, had your amazing strawberries. You are dressed up, like, exactly like a strawberry salesman. Gotta have it all. What was the building on demo like? What was the story behind the demo?[00:11:22] swyx: It was really interesting. This is actually something I had been thinking about for months before the launch.[00:11:27] swyx: Like, having a, like, AI that can make phone calls is something like I've personally wanted for a long time. And so as soon as we launched internally, like, I started hacking on it. And then that sort of just started. We made it into like an internal demo, and then people found it really interesting, and then we thought how cool would it be to have this like on stage as, as one of the demos.[00:11:47] swyx: Yeah, would would you call out any technical issues building, like you were basically one of the first people ever to build with a voice mode API. Would you call out any issues like integrating it with Twilio like that, like you did with function calling, with like a form filling elements. I noticed that you had like intents of things to fulfill, and then.[00:12:07] swyx: When there's still missing info, the voice would prompt you, roleplaying the store guy.[00:12:13] swyx: Yeah, yeah, so, I think technically, there's like the whole, just working with audio and streams is a whole different beast. Like, even separate from like AI and this, this like, new capabilities, it's just, it's just tough.[00:12:26] swyx: Yeah, when you have a prompt, conversationally it'll just follow, like the, it was, Instead of like, kind of step by step to like ask the right questions based on like the like what the request was, right? The function calling itself is sort of tangential to that. Like, you have to prompt it to call the functions, but then handling it isn't too much different from, like, what you would do with assistant streaming or, like, chat completion streaming.[00:12:47] swyx: I think, like, the API feels very similar just to, like, if everything in the API was streaming, it actually feels quite familiar to that.[00:12:53] swyx: And then, function calling wise, I mean, does it work the same? I don't know. Like, I saw a lot of logs. You guys showed, like, in the playground, a lot of logs. What is in there?[00:13:03] swyx: What should people know?[00:13:04] swyx: Yeah, I mean, it is, like, the events may have different names than the streaming events that we have in chat completions, but they represent very similar things. It's things like, you know, function call started, argument started, it's like, here's like argument deltas, and then like function call done.[00:13:20] swyx: Conveniently we send one that has the full function, and then I just use that. Nice.[00:13:25] swyx: Yeah and then, like, what restrictions do, should people be aware of? Like, you know, I think, I think, before we recorded, we discussed a little bit about the sensitivities around basically calling random store owners and putting, putting like an AI on them.[00:13:40] swyx: Yeah, so there's, I think there's recent regulation on that, which is why we want to be like very, I guess, aware of, of You know, you can't just call anybody with AI, right? That's like just robocalling. You wouldn't want someone just calling you with AI.[00:13:54] swyx: I'm a developer, I'm about to do this on random people.[00:13:57] swyx: What laws am I about to break?[00:14:00] swyx: I forget what the governing body is, but you should, I think, Having consent of the person you're about to call, it always works. I, as the strawberry owner, have consented to like getting called with AI. I think past that you, you want to be careful. Definitely individuals are more sensitive than businesses.[00:14:19] swyx: I think businesses you have a little bit more leeway. Also, they're like, businesses I think have an incentive to want to receive AI phone calls. Especially if like, they're dealing with it. It's doing business. Right, like, it's more business. It's kind of like getting on a booking platform, right, you're exposed to more.[00:14:33] swyx: But, I think it's still very much like a gray area. Again, so. I think everybody should, you know, tread carefully, like, figure out what it is. I, I, I, the law is so recent, I didn't have enough time to, like, I'm also not a lawyer. Yeah, yeah, yeah, of course. Yeah.[00:14:49] swyx: Okay, cool fair enough. One other thing, this is kind of agentic.[00:14:52] swyx: Did you use a state machine at all? Did you use any framework? No. You just stick it in context and then just run it in a loop until it ends call?[00:15:01] swyx: Yeah, there isn't even a loop, like Okay. Because the API is just based on sessions. It's always just going to keep going. Every time you speak, it'll trigger a call.[00:15:11] swyx: And then after every function call was also invoked invoking like a generation. And so that is another difference here. It's like it's inherently almost like in a loop, be just by being in a session, right? No state machines needed. I'd say this is very similar to like, the notion of routines, where it's just like a list of steps.[00:15:29] swyx: And it, like, sticks to them softly, but usually pretty well. And the steps is the prompts? The steps, it's like the prompt, like the steps are in the prompt. Yeah, yeah, yeah. Right, it's like step one, do this, step one, step two, do that. What if I want to change the system prompt halfway through the conversation?[00:15:44] swyx: You can. Okay. You can. To be honest, I have not played without two too much. Yeah,[00:15:47] swyx: yeah.[00:15:48] swyx: But, I know you can.[00:15:49] swyx: Yeah, yeah. Yeah. Awesome. I noticed that you called it real time API, but not voice API. Mm hmm. So I assume that it's like real time API starting with voice. Right, I think that's what he said on the thing.[00:16:00] swyx: I can't imagine, like, what else is real[00:16:02] swyx: time? Well, I guess, to use ChatGPT's voice mode as an example, Like, we've demoed the video, right? Like, real time image, right? So, I'm not actually sure what timelines are, But I would expect, if I had to guess, That, like, that is probably the next thing that we're gonna be making.[00:16:17] swyx: You'd probably have to talk directly with the team building this. Sure. But, You can't promise their timelines. Yeah, yeah, yeah, right, exactly. But, like, given that this is the features that currently, Or that exists that we've demoed on Chachapiti. Yeah. There[00:16:29] swyx: will never be a[00:16:29] swyx: case where there's like a real time text API, right?[00:16:31] swyx: I don't Well, this is a real time text API. You can do text only on this. Oh. Yeah. I don't know why you would. But it's actually So text to text here doesn't quite make a lot of sense. I don't think you'll get a lot of latency gain. But, like, speech to text is really interesting. Because you can prevent You can prevent responses, like audio responses.[00:16:54] swyx: And force function calls. And so you can do stuff like UI control. That is like super super reliable. We had a lot of like, you know, un, like, we weren't sure how well this was gonna work because it's like, you have a voice answering. It's like a whole persona, right? Like, that's a little bit more, you know, risky.[00:17:10] swyx: But if you, like, cut out the audio outputs and make it so it always has to output a function, like you can end up with pretty pretty good, like, Pretty reliable, like, command like a command architecture. Yeah,[00:17:21] swyx: actually, that's the way I want to interact with a lot of these things as well. Like, one sided voice.[00:17:26] swyx: Yeah, you don't necessarily want to hear the[00:17:27] swyx: voice back. And like, sometimes it's like, yeah, I think having an output voice is great. But I feel like I don't always want to hear an output voice. I'd say usually I don't. But yeah, exactly, being able to speak to it is super sweet.[00:17:39] swyx: Cool. Do you want to comment on any of the other stuff that you announced?[00:17:41] swyx: From caching I noticed was like, I like the no code change part. I'm looking forward to the docs because I'm sure there's a lot of details on like, what you cache, how long you cache. Cause like, enthalpy caches were like 5 minutes. I was like, okay, but what if I don't make a call every 5 minutes?[00:17:56] swyx: Yeah,[00:17:56] swyx: to be super honest with you, I've been so caught up with the real time API and making the demo that I haven't read up on the other stuff. Launches too much. I mean, I'm aware of them, but I think I'm excited to see how all distillation works. That's something that we've been doing like, I don't know, I've been like doing it between our models for a while And I've seen really good results like I've done back in a day like from GPT 4 to GPT 3.[00:18:19] swyx: 5 And got like, like pretty much the same level of like function calling with like hundreds of functions So that was super super compelling So, I feel like easier distillation, I'm really excited for. I see. Is it a tool?[00:18:31] swyx: So, I saw evals. Yeah. Like, what is the distillation product? It wasn't super clear, to be honest.[00:18:36] swyx: I, I think I want to, I want to let that team, I want to let that team talk about it. Okay,[00:18:40] swyx: alright. Well, I appreciate you jumping on. Yeah, of course. Amazing demo. It was beautifully designed. I'm sure that was part of you and Roman, and[00:18:47] swyx: Yeah, I guess, shout out to like, the first people to like, creators of Wanderlust, originally, were like, Simon and Carolis, and then like, I took it and built the voice component and the voice calling components.[00:18:59] swyx: Yeah, so it's been a big team effort. And like the entire PI team for like Debugging everything as it's been going on. It's been, it's been so good working with them. Yeah, you're the first consumers on the DX[00:19:07] swyx: team. Yeah. Yeah, I mean, the classic role of what we do there. Yeah. Okay, yeah, anything else? Any other call to action?[00:19:13] swyx: No, enjoy Dev Day. Thank you. Yeah. That's it.[00:19:16] Olivier Godement, Head of Product, OpenAI[00:19:16] AI Charlie: The latent space crew then talked to Olivier Godmont, head of product for the OpenAI platform, who led the entire Dev Day keynote and introduced all the major new features and updates that we talked about today.[00:19:28] swyx: Okay, so we are here with Olivier Godmont. That's right.[00:19:32] swyx: I don't pronounce French. That's fine. It was perfect. And it was amazing to see your keynote today. What was the back story of, of preparing something like this? Preparing, like, Dev Day? It[00:19:43] Olivier Godement: essentially came from a couple of places. Number one, excellent reception from last year's Dev Day.[00:19:48] Olivier Godement: Developers, startup founders, researchers want to spend more time with OpenAI, and we want to spend more time with them as well. And so for us, like, it was a no brainer, frankly, to do it again, like, you know, like a nice conference. The second thing is going global. We've done a few events like in Paris and like a few other like, you know, non European, non American countries.[00:20:05] Olivier Godement: And so this year we're doing SF, Singapore, and London. To frankly just meet more developers.[00:20:10] swyx: Yeah, I'm very excited for the Singapore one.[00:20:12] Olivier Godement: Ah,[00:20:12] swyx: yeah. Will you be[00:20:13] Olivier Godement: there?[00:20:14] swyx: I don't know. I don't know if I got an invite. No. I can't just talk to you. Yeah, like, and then there was some speculation around October 1st.[00:20:22] Olivier Godement: Yeah. Is it because[00:20:23] swyx: 01, October 1st? It[00:20:25] Olivier Godement: has nothing to do. I discovered the tweet yesterday where like, people are so creative. No one, there was no connection to October 1st. But in hindsight, that would have been a pretty good meme by Tiana. Okay.[00:20:37] swyx: Yeah, and you know, I think like, OpenAI's outreach to developers is something that I felt the whole in 2022, when like, you know, like, people were trying to build a chat GPT, and like, there was no function calling, all that stuff that you talked about in the past.[00:20:51] swyx: And that's why I started my own conference as like like, here's our little developer conference thing. And, but to see this OpenAI Dev Day now, and like to see so many developer oriented products coming to OpenAI, I think it's really encouraging.[00:21:02] Olivier Godement: Yeah, totally. It's that's what I said, essentially, like, developers are basically the people who make the best connection between the technology and, you know, the future, essentially.[00:21:14] Olivier Godement: Like, you know, essentially see a capability, see a low level, like, technology, and are like, hey, I see how that application or that use case that can be enabled. And so, in the direction of enabling, like, AGI, like, all of humanity, it's a no brainer for us, like, frankly, to partner with Devs.[00:21:31] Alessio: And most importantly, you almost never had waitlists, which, compared to like other releases, people usually, usually have.[00:21:38] Alessio: What is the, you know, you had from caching, you had real time voice API, we, you know, Shawn did a long Twitter thread, so people know the releases. Yeah. What is the thing that was like sneakily the hardest to actually get ready for, for that day, or like, what was the kind of like, you know, last 24 hours, anything that you didn't know was gonna work?[00:21:56] Olivier Godement: Yeah. The old Fairly, like, I would say, involved, like, features to ship. So the team has been working for a month, all of them. The one which I would say is the newest for OpenAI is the real time API. For a couple of reasons. I mean, one, you know, it's a new modality. Second, like, it's the first time that we have an actual, like, WebSocket based API.[00:22:16] Olivier Godement: And so, I would say that's the one that required, like, the most work over the month. To get right from a developer perspective and to also make sure that our existing safety mitigation that worked well with like real time audio in and audio out.[00:22:30] swyx: Yeah, what design choices or what was like the sort of design choices that you want to highlight?[00:22:35] swyx: Like, you know, like I think for me, like, WebSockets, you just receive a bunch of events. It's two way. I obviously don't have a ton of experience. I think a lot of developers are going to have to embrace this real time programming. Like, what are you designing for, or like, what advice would you have for developers exploring this?[00:22:51] Olivier Godement: The core design hypothesis was essentially, how do we enable, like, human level latency? We did a bunch of tests, like, on average, like, human beings, like, you know, takes, like, something like 300 milliseconds to converse with each other. And so that was the design principle, essentially. Like, working backward from that, and, you know, making the technology work.[00:23:11] Olivier Godement: And so we evaluated a few options, and WebSockets was the one that we landed on. So that was, like, one design choice. A few other, like, big design choices that we had to make prompt caching. Prompt caching, the design, like, target was automated from the get go. Like, zero code change from the developer.[00:23:27] Olivier Godement: That way you don't have to learn, like, what is a prompt prefix, and, you know, how long does a cache work, like, we just do it as much as we can, essentially. So that was a big design choice as well. And then finally, on distillation, like, and evaluation. The big design choice was something I learned at Skype, like in my previous job, like a philosophy around, like, a pit of success.[00:23:47] Olivier Godement: Like, what is essentially the, the, the minimum number of steps for the majority of developers to do the right thing? Because when you do evals on fat tuning, there are many, many ways, like, to mess it up, frankly, like, you know, and have, like, a crappy model, like, evals that tell, like, a wrong story. And so our whole design was, okay, we actually care about, like, helping people who don't have, like, that much experience, like, evaluating a model, like, get, like, in a few minutes, like, to a good spot.[00:24:11] Olivier Godement: And so how do we essentially enable that bit of success, like, in the product flow?[00:24:15] swyx: Yeah, yeah, I'm a little bit scared to fine tune especially for vision, because I don't know what I don't know for stuff like vision, right? Like, for text, I can evaluate pretty easily. For vision let's say I'm like trying to, one of your examples was grab.[00:24:33] swyx: Which, very close to home, I'm from Singapore. I think your example was like, they identified stop signs better. Why is that hard? Why do I have to fine tune that? If I fine tune that, do I lose other things? You know, like, there's a lot of unknowns with Vision that I think developers have to figure out.[00:24:50] swyx: For[00:24:50] Olivier Godement: sure. Vision is going to open up, like, a new, I would say, evaluation space. Because you're right, like, it's harder, like, you know, to tell correct from incorrect, essentially, with images. What I can say is we've been alpha testing, like, the Vision fine tuning, like, for several weeks at that point. We are seeing, like, even higher performance uplift compared to text fine tuning.[00:25:10] Olivier Godement: So that's, there is something here, like, we've been pretty impressed, like, in a good way, frankly. But, you know, how well it works. But for sure, like, you know, I expect the developers who are moving from one modality to, like, text and images will have, like, more, you know Testing, evaluation, like, you know, to set in place, like, to make sure it works well.[00:25:25] Alessio: The model distillation and evals is definitely, like, the most interesting. Moving away from just being a model provider to being a platform provider. How should people think about being the source of truth? Like, do you want OpenAI to be, like, the system of record of all the prompting? Because people sometimes store it in, like, different data sources.[00:25:41] Alessio: And then, is that going to be the same as the models evolve? So you don't have to worry about, you know, refactoring the data, like, things like that, or like future model structures.[00:25:51] Olivier Godement: The vision is if you want to be a source of truth, you have to earn it, right? Like, we're not going to force people, like, to pass us data.[00:25:57] Olivier Godement: There is no value prop, like, you know, for us to store the data. The vision here is at the moment, like, most developers, like, use like a one size fits all model, like be off the shelf, like GP40 essentially. The vision we have is fast forward a couple of years. I think, like, most developers will essentially, like, have a.[00:26:15] Olivier Godement: An automated, continuous, fine tuned model. The more, like, you use the model, the more data you pass to the model provider, like, the model is automatically, like, fine tuned, evaluated against some eval sets, and essentially, like, you don't have to every month, when there is a new snapshot, like, you know, to go online and, you know, try a few new things.[00:26:34] Olivier Godement: That's a direction. We are pretty far away from it. But I think, like, that evaluation and decision product are essentially a first good step in that direction. It's like, hey, it's you. I set it by that direction, and you give us the evaluation data. We can actually log your completion data and start to do some automation on your behalf.[00:26:52] Alessio: And then you can do evals for free if you share data with OpenAI. How should people think about when it's worth it, when it's not? Sometimes people get overly protective of their data when it's actually not that useful. But how should developers think about when it's right to do it, when not, or[00:27:07] Olivier Godement: if you have any thoughts on it?[00:27:08] Olivier Godement: The default policy is still the same, like, you know, we don't train on, like, any API data unless you opt in. What we've seen from feedback is evaluation can be expensive. Like, if you run, like, O1 evals on, like, thousands of samples Like, your build will get increased, like, you know, pretty pretty significantly.[00:27:22] Olivier Godement: That's problem statement number one. Problem statement number two is, essentially, I want to get to a world where whenever OpenAI ships a new model snapshot, we have full confidence that there is no regression for the task that developers care about. And for that to be the case, essentially, we need to get evals.[00:27:39] Olivier Godement: And so that, essentially, is a sort of a two bugs one stone. It's like, we subsidize, basically, the evals. And we also use the evals when we ship new models to make sure that we keep going in the right direction. So, in my sense, it's a win win, but again, completely opt in. I expect that many developers will not want to share their data, and that's perfectly fine to me.[00:27:56] swyx: Yeah, I think free evals though, very, very good incentive. I mean, it's a fair trade. You get data, we get free evals. Exactly,[00:28:04] Olivier Godement: and we sanitize PII, everything. We have no interest in the actual sensitive data. We just want to have good evaluation on the real use cases.[00:28:13] swyx: Like, I always want to eval the eval. I don't know if that ever came up.[00:28:17] swyx: Like, sometimes the evals themselves are wrong, and there's no way for me to tell you.[00:28:22] Olivier Godement: Everyone who is starting with LLM, teaching with LLM, is like, Yeah, evaluation, easy, you know, I've done testing, like, all my life. And then you start to actually be able to eval, understand, like, all the corner cases, And you realize, wow, there's like a whole field in itself.[00:28:35] Olivier Godement: So, yeah, good evaluation is hard and so, yeah. Yeah, yeah.[00:28:38] swyx: But I think there's a, you know, I just talked to Brain Trust which I think is one of your partners. Mm-Hmm. . They also emphasize code based evals versus your sort of low code. What I see is like, I don't know, maybe there's some more that you didn't demo.[00:28:53] swyx: YC is kind of like a low code experience, right, for evals. Would you ever support like a more code based, like, would I run code on OpenAI's eval platform?[00:29:02] Olivier Godement: For sure. I mean, we meet developers where they are, you know. At the moment, the demand was more for like, you know, easy to get started, like eval. But, you know, if we need to expose like an evaluation API, for instance, for people like, you know, to pass, like, you know, their existing test data we'll do it.[00:29:15] Olivier Godement: So yeah, there is no, you know, philosophical, I would say, like, you know, misalignment on that. Yeah,[00:29:19] swyx: yeah, yeah. What I think this is becoming, by the way, and I don't, like it's basically, like, you're becoming AWS. Like, the AI cloud. And I don't know if, like, that's a conscious strategy, or it's, like, It doesn't even have to be a conscious strategy.[00:29:33] swyx: Like, you're going to offer storage. You're going to offer compute. You're going to offer networking. I don't know what networking looks like. Networking is maybe, like, Caching or like it's a CDN. It's a prompt CDN.[00:29:45] Alex Volkov: Yeah,[00:29:45] swyx: but it's the AI versions of everything, right? Do you like do you see the analogies or?[00:29:52] Olivier Godement: Whatever Whatever I took to developers. I feel like Good models are just half of the story to build a good app There's a third model you need to do Evaluation is the perfect example. Like, you know, you can have the best model in the world If you're in the dark, like, you know, it's really hard to gain the confidence and so Our philosophy is[00:30:11] Olivier Godement: The whole like software development stack is being basically reinvented, you know, with LLMs. There is no freaking way that open AI can build everything. Like there is just too much to build, frankly. And so my philosophy is, essentially, we'll focus on like the tools which are like the closest to the model itself.[00:30:28] Olivier Godement: So that's why you see us like, you know, investing quite a bit in like fine tuning, distillation, our evaluation, because we think that it actually makes sense to have like in one spot, Like, you know, all of that. Like, there is some sort of virtual circle, essentially, that you can set in place. But stuff like, you know, LLMOps, like tools which are, like, further away from the model, I don't know if you want to do, like, you know, super elaborate, like, prompt management, or, you know, like, tooling, like, I'm not sure, like, you know, OpenAI has, like, such a big edge, frankly, like, you know, to build this sort of tools.[00:30:56] Olivier Godement: So that's how we view it at the moment. But again, frankly, the philosophy is super simple. The strategy is super simple. It's meeting developers where they want us to be. And so, you know that's frankly, like, you know, day in, day out, like, you know, what I try to do.[00:31:08] Alessio: Cool. Thank you so much for the time.[00:31:10] Alessio: I'm sure you,[00:31:10] swyx: Yeah, I have more questions on, a couple questions on voice, and then also, like, your call to action, like, what you want feedback on, right? So, I think we should spend a bit more time on voice, because I feel like that's, like, the big splash thing. I talked well Well, I mean, I mean, just what is the future of real time for OpenAI?[00:31:28] swyx: Yeah. Because I think obviously video is next. You already have it in the, the ChatGPT desktop app. Do we just have a permanent, like, you know, like, are developers just going to be, like, sending sockets back and forth with OpenAI? Like how do we program for that? Like, what what is the future?[00:31:44] Olivier Godement: Yeah, that makes sense. I think with multimodality, like, real time is quickly becoming, like, you know, essentially the right experience, like, to build an application. Yeah. So my expectation is that we'll see like a non trivial, like a volume of applications like moving to a real time API. Like if you zoom out, like, audio is really simple, like, audio until basically now.[00:32:05] Olivier Godement: Audio on the web, in apps, was basically very much like a second class citizen. Like, you basically did like an audio chatbot for users who did not have a choice. You know, they were like struggling to read, or I don't know, they were like not super educated with technology. And so, frankly, it was like the crappy option, you know, compared to text.[00:32:25] Olivier Godement: But when you talk to people in the real world, the vast majority of people, like, prefer to talk and listen instead of typing and writing.[00:32:34] swyx: We speak before we write.[00:32:35] Olivier Godement: Exactly. I don't know. I mean, I'm sure it's the case for you in Singapore. For me, my friends in Europe, the number of, like, WhatsApp, like, voice notes they receive every day, I mean, just people, it makes sense, frankly, like, you know.[00:32:45] Olivier Godement: Chinese. Chinese, yeah.[00:32:46] swyx: Yeah,[00:32:47] Olivier Godement: all voice. You know, it's easier. There is more emotions. I mean, you know, you get the point across, like, pretty well. And so my personal ambition for, like, the real time API and, like, audio in general is to make, like, audio and, like, multimodality, like, truly a first class experience.[00:33:01] Olivier Godement: Like, you know, if you're, like, you know, the amazing, like, super bold, like, start up out of YC, you want to build, like, the next, like, billion, like, you know, user application to make it, like, truly your first and make it feel, like, you know, an actual good, like, you know, product experience. So that's essentially the ambition, and I think, like, yeah, it could be pretty big.[00:33:17] swyx: Yeah. I think one, one people, one issue that people have with the voice so far as, as released in advanced voice mode is the refusals.[00:33:24] Alex Volkov: Yeah.[00:33:24] swyx: You guys had a very inspiring model spec. I think Joanne worked on that. Where you said, like, yeah, we don't want to overly refuse all the time. In fact, like, even if, like, not safe for work, like, in some occasions, it's okay.[00:33:38] swyx: How, is there an API that we can say, not safe for work, okay?[00:33:41] Olivier Godement: I think we'll get there. I think we'll get there. The mobile spec, like, nailed it, like, you know. It nailed it! It's so good! Yeah, we are not in the business of, like, policing, you know, if you can say, like, vulgar words or whatever. You know, there are some use cases, like, you know, I'm writing, like, a Hollywood, like, script I want to say, like, will go on, and it's perfectly fine, you know?[00:33:59] Olivier Godement: And so I think the direction where we'll go here is that basically There will always be like, you know, a set of behavior that we will, you know, just like forbid, frankly, because they're illegal against our terms of services. But then there will be like, you know, some more like risky, like themes, which are completely legal, like, you know, vulgar words or, you know, not safe for work stuff.[00:34:17] Olivier Godement: Where basically we'll expose like a controllable, like safety, like knobs in the API to basically allow you to say, hey, that theme okay, that theme not okay. How sensitive do you want the threshold to be on safety refusals? I think that's the Dijkstra. So a[00:34:31] swyx: safety API.[00:34:32] Olivier Godement: Yeah, in a way, yeah.[00:34:33] swyx: Yeah, we've never had that.[00:34:34] Olivier Godement: Yeah. '[00:34:35] swyx: cause right now is you, it is whatever you decide. And then it's, that's it. That, that, that would be the main reason I don't use opening a voice is because of[00:34:42] Olivier Godement: it's over police. Over refuse over refusals. Yeah. Yeah, yeah. No, we gotta fix that. Yeah. Like singing,[00:34:47] Alessio: we're trying to do voice. I'm a singer.[00:34:49] swyx: And you, you locked off singing.[00:34:51] swyx: Yeah,[00:34:51] Alessio: yeah, yeah.[00:34:52] swyx: But I, I understand music gets you in trouble. Okay. Yeah. So then, and then just generally, like, what do you want to hear from developers? Right? We have, we have all developers watching you know, what feedback do you want? Any, anything specific as well, like from, especially from today anything that you are unsure about, that you are like, Our feedback could really help you decide.[00:35:09] swyx: For sure.[00:35:10] Olivier Godement: I think, essentially, it's becoming pretty clear after today that, you know, I would say the open end direction has become pretty clear, like, you know, after today. Investment in reasoning, investment in multimodality, Investment as well, like in, I would say, tool use, like function calling. To me, the biggest question I have is, you know, Where should we put the cursor next?[00:35:30] Olivier Godement: I think we need all three of them, frankly, like, you know, so we'll keep pushing.[00:35:33] swyx: Hire 10, 000 people, or actually, no need, build a bunch of bots.[00:35:37] Olivier Godement: Exactly, and so let's take O1 smart enough, like, for your problems? Like, you know, let's set aside for a second the existing models, like, for the apps that you would love to build, is O1 basically it in reasoning, or do we still have, like, you know, a step to do?[00:35:50] Olivier Godement: Preview is not enough, I[00:35:52] swyx: need the full one.[00:35:53] Olivier Godement: Yeah, so that's exactly that sort of feedback. Essentially what they would love to do is for developers I mean, there's a thing that Sam has been saying like over and over again, like, you know, it's easier said than done, but I think it's directionally correct. As a developer, as a founder, you basically want to build an app which is a bit too difficult for the model today, right?[00:36:12] Olivier Godement: Like, what you think is right, it's like, sort of working, sometimes not working. And that way, you know, that basically gives us like a goalpost, and be like, okay, that's what you need to enable with the next model release, like in a few months. And so I would say that Usually, like, that's the sort of feedback which is like the most useful that I can, like, directly, like, you know, incorporate.[00:36:33] swyx: Awesome. I think that's our time. Thank you so much, guys. Yeah, thank you so much.[00:36:38] AI Charlie: Thank you. We were particularly impressed that Olivier addressed the not safe for work moderation policy question head on, as that had only previously been picked up on in Reddit forums. This is an encouraging sign that we will return to in the closing candor with Sam Altman at the end of this episode.[00:36:57] Romain Huet, Head of DX, OpenAI[00:36:57] AI Charlie: Next, a chat with Roman Hewitt, friend of the pod, AI Engineer World's fair closing keynote speaker, and head of developer experience at OpenAI on his incredible live demos And advice to AI engineers on all the new modalities.[00:37:12] Alessio: Alright, we're live from OpenAI Dev Day. We're with Juan, who just did two great demos on, on stage.[00:37:17] Alessio: And he's been a friend of Latentspace, so thanks for taking some of the time.[00:37:20] Romain Huet: Of course, yeah, thank you for being here and spending the time with us today.[00:37:23] swyx: Yeah, I appreciate appreciate you guys putting this on. I, I know it's like extra work, but it really shows the developers that you're, Care and about reaching out.[00:37:31] Romain Huet: Yeah, of course, I think when you go back to the OpenAI mission, I think for us it's super important that we have the developers involved in everything we do. Making sure that you know, they have all of the tools they need to build successful apps. And we really believe that the developers are always going to invent the ideas, the prototypes, the fun factors of AI that we can't build ourselves.[00:37:49] Romain Huet: So it's really cool to have everyone here.[00:37:51] swyx: We had Michelle from you guys on. Yes, great episode. She very seriously said API is the path to AGI. Correct. And people in our YouTube comments were like, API is not AGI. I'm like, no, she's very serious. API is the path to AGI. Like, you're not going to build everything like the developers are, right?[00:38:08] swyx: Of[00:38:08] Romain Huet: course, yeah, that's the whole value of having a platform and an ecosystem of amazing builders who can, like, in turn, create all of these apps. I'm sure we talked about this before, but there's now more than 3 million developers building on OpenAI, so it's pretty exciting to see all of that energy into creating new things.[00:38:26] Alessio: I was going to say, you built two apps on stage today, an international space station tracker and then a drone. The hardest thing must have been opening Xcode and setting that up. Now, like, the models are so good that they can do everything else. Yes. You had two modes of interaction. You had kind of like a GPT app to get the plan with one, and then you had a cursor to do apply some of the changes.[00:38:47] Alessio: Correct. How should people think about the best way to consume the coding models, especially both for You know, brand new projects and then existing projects that you're trying to modify.[00:38:56] Romain Huet: Yeah. I mean, one of the things that's really cool about O1 Preview and O1 Mini being available in the API is that you can use it in your favorite tools like cursor like I did, right?[00:39:06] Romain Huet: And that's also what like Devin from Cognition can use in their own software engineering agents. In the case of Xcode, like, it's not quite deeply integrated in Xcode, so that's why I had like chat GPT side by side. But it's cool, right, because I could instruct O1 Preview to be, like, my coding partner and brainstorming partner for this app, but also consolidate all of the, the files and architect the app the way I wanted.[00:39:28] Romain Huet: So, all I had to do was just, like, port the code over to Xcode and zero shot the app build. I don't think I conveyed, by the way, how big a deal that is, but, like, you can now create an iPhone app from scratch, describing a lot of intricate details that you want, and your vision comes to life in, like, a minute.[00:39:47] Romain Huet: It's pretty outstanding.[00:39:48] swyx: I have to admit, I was a bit skeptical because if I open up SQL, I don't know anything about iOS programming. You know which file to paste it in. You probably set it up a little bit. So I'm like, I have to go home and test it. And I need the ChatGPT desktop app so that it can tell me where to click.[00:40:04] Romain Huet: Yeah, I mean like, Xcode and iOS development has become easier over the years since they introduced Swift and SwiftUI. I think back in the days of Objective C, or like, you know, the storyboard, it was a bit harder to get in for someone new. But now with Swift and SwiftUI, their dev tools are really exceptional.[00:40:23] Romain Huet: But now when you combine that with O1, as your brainstorming and coding partner, it's like your architect, effectively. That's the best way, I think, to describe O1. People ask me, like, can GPT 4 do some of that? And it certainly can. But I think it will just start spitting out code, right? And I think what's great about O1, is that it can, like, make up a plan.[00:40:42] Romain Huet: In this case, for instance, the iOS app had to fetch data from an API, it had to look at the docs, it had to look at, like, how do I parse this JSON, where do I store this thing, and kind of wire things up together. So that's where it really shines. Is mini or preview the better model that people should be using?[00:40:58] Romain Huet: Like, how? I think people should try both. We're obviously very excited about the upcoming O1 that we shared the evals for. But we noticed that O1 Mini is very, very good at everything math, coding, everything STEM. If you need for your kind of brainstorming or your kind of science part, you need some broader knowledge than reaching for O1 previews better.[00:41:20] Romain Huet: But yeah, I used O1 Mini for my second demo. And it worked perfectly. All I needed was very much like something rooted in code, architecting and wiring up like a front end, a backend, some UDP packets, some web sockets, something very specific. And it did that perfectly.[00:41:35] swyx: And then maybe just talking about voice and Wanderlust, the app that keeps on giving, what's the backstory behind like preparing for all of that?[00:41:44] Romain Huet: You know, it's funny because when last year for Dev Day, we were trying to think about what could be a great demo app to show like an assistive experience. I've always thought travel is a kind of a great use case because you have, like, pictures, you have locations, you have the need for translations, potentially.[00:42:01] Romain Huet: There's like so many use cases that are bounded to travel that I thought last year, let's use a travel app. And that's how Wanderlust came to be. But of course, a year ago, all we had was a text based assistant. And now we thought, well, if there's a voice modality, what if we just bring this app back as a wink.[00:42:19] Romain Huet: And what if we were interacting better with voice? And so with this new demo, what I showed was the ability to like, So, we wanted to have a complete conversation in real time with the app, but also the thing we wanted to highlight was the ability to call tools and functions, right? So, like in this case, we placed a phone call using the Twilio API, interfacing with our AI agents, but developers are so smart that they'll come up with so many great ideas that we could not think of ourselves, right?[00:42:48] Romain Huet: But what if you could have like a, you know, a 911 dispatcher? What if you could have like a customer service? Like center, that is much smarter than what we've been used to today. There's gonna be so many use cases for real time, it's awesome.[00:43:00] swyx: Yeah, and sometimes actually you, you, like this should kill phone trees.[00:43:04] swyx: Like there should not be like dial one[00:43:07] Romain Huet: of course para[00:43:08] swyx: espanol, you know? Yeah, exactly. Or whatever. I dunno.[00:43:12] Romain Huet: I mean, even you starting speaking Spanish would just do the thing, you know you don't even have to ask. So yeah, I'm excited for this future where we don't have to interact with those legacy systems.[00:43:22] swyx: Yeah. Yeah. Is there anything, so you are doing function calling in a streaming environment. So basically it's, it's web sockets. It's UDP, I think. It's basically not guaranteed to be exactly once delivery. Like, is there any coding challenges that you encountered when building this?[00:43:39] Romain Huet: Yeah, it's a bit more delicate to get into it.[00:43:41] Romain Huet: We also think that for now, what we, what we shipped is a, is a beta of this API. I think there's much more to build onto it. It does have the function calling and the tools. But we think that for instance, if you want to have something very robust, On your client side, maybe you want to have web RTC as a client, right?[00:43:58] Romain Huet: And, and as opposed to like directly working with the sockets at scale. So that's why we have partners like Life Kit and Agora if you want to, if you want to use them. And I'm sure we'll have many mores in the, in many more in the future. But yeah, we keep on iterating on that, and I'm sure the feedback of developers in the weeks to come is going to be super critical for us to get it right.[00:44:16] swyx: Yeah, I think LiveKit has been fairly public that they are used in, in the Chachapiti app. Like, is it, it's just all open source, and we just use it directly with OpenAI, or do we use LiveKit Cloud or something?[00:44:28] Romain Huet: So right now we, we released the API, we released some sample code also, and referenced clients for people to get started with our API.[00:44:35] Romain Huet: And we also partnered with LifeKit and Agora, so they also have their own, like ways to help you get started that plugs natively with the real time API. So depending on the use case, people can, can can decide what to use. If you're working on something that's completely client or if you're working on something on the server side, for the voice interaction, you may have different needs, so we want to support all of those.[00:44:55] Alessio: I know you gotta run. Is there anything that you want the AI engineering community to give feedback on specifically, like even down to like, you know, a specific API end point or like, what, what's like the thing that you want? Yeah. I[00:45:08] Romain Huet: mean, you know, if we take a step back, I think dev Day this year is all different from last year and, and in, in a few different ways.[00:45:15] Romain Huet: But one way is that we wanted to keep it intimate, even more intimate than last year. We wanted to make sure that the community is. Thank you very much for joining us on the Spotlight. That's why we have community talks and everything. And the takeaway here is like learning from the very best developers and AI engineers.[00:45:31] Romain Huet: And so, you know we want to learn from them. Most of what we shipped this morning, including things like prompt caching the ability to generate prompts quickly in the playground, or even things like vision fine tuning. These are all things that developers have been asking of us. And so, the takeaway I would, I would leave them with is to say like, Hey, the roadmap that we're working on is heavily influenced by them and their work.[00:45:53] Romain Huet: And so we love feedback From high feature requests, as you say, down to, like, very intricate details of an API endpoint, we love feedback, so yes that's, that's how we, that's how we build this API.[00:46:05] swyx: Yeah, I think the, the model distillation thing as well, it might be, like, the, the most boring, but, like, actually used a lot.[00:46:12] Romain Huet: True, yeah. And I think maybe the most unexpected, right, because I think if I, if I read Twitter correctly the past few days, a lot of people were expecting us. To shape the real time API for speech to speech. I don't think developers were expecting us to have more tools for distillation, and we really think that's gonna be a big deal, right?[00:46:30] Romain Huet: If you're building apps that have you know, you, you want high, like like low latency, low cost, but high performance, high quality on the use case distillation is gonna be amazing.[00:46:40] swyx: Yeah. I sat in the distillation session just now and they showed how they distilled from four oh to four mini and it was like only like a 2% hit in the performance and 50 next.[00:46:49] swyx: Yeah,[00:46:50] Romain Huet: I was there as well for the superhuman kind of use case inspired for an Ebola client. Yeah, this was really good. Cool man! so much for having me. Thanks again for being here today. It's always[00:47:00] AI Charlie: great to have you. As you might have picked up at the end of that chat, there were many sessions throughout the day focused on specific new capabilities.[00:47:08] Michelle Pokrass, Head of API at OpenAI ft. Simon Willison[00:47:08] AI Charlie: Like the new model distillation features combining EVOLs and fine tuning. For our next session, we are delighted to bring back two former guests of the pod, which is something listeners have been greatly enjoying in our second year of doing the Latent Space podcast. Michelle Pokras of the API team joined us recently to talk about structured outputs, and today gave an updated long form session at Dev Day, describing the implementation details of the new structured output mode.[00:47:39] AI Charlie: We also got her updated thoughts on the VoiceMode API we discussed in her episode, now that it is finally announced. She is joined by friend of the pod and super blogger, Simon Willison, who also came back as guest co host in our Dev Day. 2023 episode.[00:47:56] Alessio: Great, we're back live at Dev Day returning guest Michelle and then returning guest co host Fork.[00:48:03] Alessio: Fork, yeah, I don't know. I've lost count. I think it's been a few. Simon Willison is back. Yeah, we just wrapped, we just wrapped everything up. Congrats on, on getting everything everything live. Simon did a great, like, blog, so if you haven't caught up, I[00:48:17] Simon Willison: wrote my, I implemented it. Now, I'm starting my live blog while waiting for the first talk to start, using like GPT 4, I wrote me the Javascript, and I got that live just in time and then, yeah, I was live blogging the whole day.[00:48:28] swyx: Are you a cursor enjoyer?[00:48:29] Simon Willison: I haven't really gotten into cursor yet to be honest. I just haven't spent enough time for it to click, I think. I'm more a copy and paste things out of Cloud and chat GPT. Yeah. It's interesting.[00:48:39] swyx: Yeah. I've converted to cursor and 01 is so easy to just toggle on and off.[00:48:45] Alessio: What's your workflow?[00:48:46] Alessio: VS[00:48:48] Michelle Pokrass: Code co pilot, so Yep, same here. Team co pilot. Co pilot is actually the reason I joined OpenAI. It was, you know, before ChatGPT, this is the thing that really got me. So I'm still into it, but I keep meaning to try out Cursor, and I think now that things have calmed down, I'm gonna give it a real go.[00:49:03] swyx: Yeah, it's a big thing to change your tool of choice.[00:49:06] swyx: Yes,[00:49:06] Michelle Pokrass: yeah, I'm pretty dialed, so.[00:49:09] swyx: I mean, you know, if you want, you can just fork VS Code and make your own. That's the thing to dumb thing, right? We joked about doing a hackathon where the only thing you do is fork VS Code and bet me the best fork win.[00:49:20] Michelle Pokrass: Nice.[00:49:22] swyx: That's actually a really good idea. Yeah, what's up?[00:49:26] swyx: I mean, congrats on launching everything today. I know, like, we touched on it a little bit, but, like, everyone was kind of guessing that Voice API was coming, and, like, we talked about it in our episode. How do you feel going into the launch? Like, any design decisions that you want to highlight?[00:49:41] Michelle Pokrass: Yeah, super jazzed about it. The team has been working on it for a while. It's, like, a very different API for us. It's the first WebSocket API, so a lot of different design decisions to be made. It's, like, what kind of events do you send? When do you send an event? What are the event names? What do you send, like, on connection versus on future messages?[00:49:57] Michelle Pokrass: So there have been a lot of interesting decisions there. The team has also hacked together really cool projects as we've been testing it. One that I really liked is we had an internal hack a thon for the API team. And some folks built like a little hack that you could use to, like VIM with voice mode, so like, control vim, and you would tell them on like, nice, write a file and it would, you know, know all the vim commands and, and pipe those in.[00:50:18] Michelle Pokrass: So yeah, a lot of cool stuff we've been hacking on and really excited to see what people build with it.[00:50:23] Simon Willison: I've gotta call out a demo from today. I think it was Katja had a 3D visualization of the solar system, like WebGL solar system, you could talk to. That is one of the coolest conference demos I've ever seen.[00:50:33] Simon Willison: That was so convincing. I really want the code. I really want the code for that to get put out there. I'll talk[00:50:39] Michelle Pokrass: to the team. I think we can[00:50:40] Simon Willison: probably
Ben Scheirman is back for part 2 of our interview on SwiftUI Migration. In this episode we focus on navigation, data handling and Swift packages.GuestBen Scheirman | Ben is an experienced software engineer from Houston, TX. Currently focused on Swift, iOS, Ruby, and Rust.Ben Scheirman (@bens@mastodon.xyz) - Mastodonsubdigital (Ben Scheirman)NSScreencast: Bite-sized Screencasts for iOS DevelopmentCombine SwiftAnnouncementsNeed help with your projects this year? BrightDigit has openings.Join Bushel BetaJoin our Brand New Patreon Page!LinksEpisode #288: Modern UIKit: Stack Navigation, Part 2pointfreeco/swift-perception: Observable tools, backported.brightdigit/Sublimation: Enable automatic discovery of your local development server on the fly. Turn your Server-Side Swift app from a mysterious vapor to a tangible solid server.krzysztofzablocki/LifetimeTracker: Find retain cycles / memory leaks sooner.siteline/swiftui-introspect: Introspect underlying UIKit/AppKit components from SwiftUIPresenting Coordinators - Soroush Khanlou on VimeoRelated EpisodesThe Great SwiftUI Migration - Part 1 with Ben ScheirmanSwiftUI Field Guide with Chris EidhofSOTU 2024 with Peter WithamSwiftUI Tips and Tricks with Craig ClaytonSwiftly Tooling with Pol Piella AbadiaIt Depends with Brandon WilliamsMy Taylor Deep Dish Swift Heroes World TourMobile System Design with Tjeerd in 't VeenThe Composable Architecture with Zev EisenbergBehind the Scenes of SwiftUI with Aviel GrossWWDC 2022 - SwiftUI and UIKit with Evan StoneSocial MediaEmailleo@brightdigit.comGitHub - @brightdigitTwitter BrightDigit - @brightdigitLeo - @leogdionLinkedInBrightDigitLeoPatreon - brightdigitCreditsMusic from https://filmmusic.io"Blippy Trance" by Kevin MacLeod (https://incompetech.com)License: CC BY (http://creativecommons.org/licenses/by/4.0/) (00:00) - Discussing Data Handling in Swift UI (01:22) - Observable Objects and View Models (04:20) - The Power of Previews in Swift UI (06:36) - Combining Combine and Async/Await (10:29) - Interfacing Between UIKit and Swift UI (17:12) - Challenges with Swift Package Manager Thanks to our monthly supporters Bertram Eber Edward Sanchez Satoshi Mitsumori Danielle Lewis Steven Lipton ★ Support this podcast on Patreon ★
Ben Scheirman of NSScreenCast comes on to talk about migrating apps such as a Nike's Sneakers app from UIKit to SwiftUI and all the little things you don't think about. This is part 1 of a 2 part interview.GuestBen Scheirman | Ben is an experienced software engineer from Houston, TX. Currently focused on Swift, iOS, Ruby, and Rust.Ben Scheirman (@bens@mastodon.xyz) - Mastodonsubdigital (Ben Scheirman)NSScreencast: Bite-sized Screencasts for iOS DevelopmentCombine SwiftAnnouncementsNeed help with your projects this year? BrightDigit has openings.Join Bushel BetaJoin our Brand New Patreon Page!LinksEpisode #288: Modern UIKit: Stack Navigation, Part 2pointfreeco/swift-perception: Observable tools, backported.brightdigit/Sublimation: Enable automatic discovery of your local development server on the fly. Turn your Server-Side Swift app from a mysterious vapor to a tangible solid server.krzysztofzablocki/LifetimeTracker: Find retain cycles / memory leaks sooner.siteline/swiftui-introspect: Introspect underlying UIKit/AppKit components from SwiftUIPresenting Coordinators - Soroush Khanlou on VimeoRelated EpisodesSwiftUI Field Guide with Chris EidhofSOTU 2024 with Peter WithamSwiftUI Tips and Tricks with Craig ClaytonSwiftly Tooling with Pol Piella AbadiaIt Depends with Brandon WilliamsMy Taylor Deep Dish Swift Heroes World TourMobile System Design with Tjeerd in 't VeenThe Composable Architecture with Zev EisenbergBehind the Scenes of SwiftUI with Aviel GrossWWDC 2022 - SwiftUI and UIKit with Evan StoneSocial MediaEmailleo@brightdigit.comGitHub - @brightdigitTwitter BrightDigit - @brightdigitLeo - @leogdionLinkedInBrightDigitLeoPatreon - brightdigitCreditsMusic from https://filmmusic.io"Blippy Trance" by Kevin MacLeod (https://incompetech.com)License: CC BY (http://creativecommons.org/licenses/by/4.0/) (00:00) - Who is Ben Scherman (02:38) - Migrating Apps to Swift UI (07:03) - Challenges with Swift UI and iOS Versions (10:24) - Using Introspect for Swift UI (16:44) - Implementing Collection View in Swift UI (25:05) - Exploring iOS 18 Scroll View API (25:30) - SwiftUI vs UIKit: Productivity and Constraints (26:38) - Design and Engineering Collaboration (29:43) - Stages of Migrating to SwiftUI (34:14) - SwiftUI Navigation and Environment Bindings (39:44) - Retain Cycles and Memory Management Thanks to our monthly supporters Bertram Eber Edward Sanchez Satoshi Mitsumori Danielle Lewis Steven Lipton ★ Support this podcast on Patreon ★
Daniel and Manton talk about the Overcast redesign and customers getting upset about changes to workflows they are used to. Manton gives an update on his new text editor and early bugs. And finally, the current state of SwiftUI and how to decide when to start from scratch with a new framework. The post Episode 610: Reinventing the 90s appeared first on Core Intuition.
In the latest episode of the "Giant Robots On Tour" podcast, hosts Rémy Hannequin and Sami Birnbaum welcome Marc G. Gauthier, a solopreneur and startup coach, who shares his journey from software development to becoming the founder and developer of The Shadow Boxing App. Marc describes how his interest in software engineering began at a young age with QBasic and evolved through various leadership roles at companies like Drivy (now Getaround) and Back Market. His early passion for gaming led him to learn coding, and over time, he naturally transitioned into management roles, finding excitement in organizing and leading teams while maintaining his love for building products. During the episode, Marc discusses the challenges and intricacies of scaling startups, emphasizing the importance of balancing speed and reliability in software development. He recounts his experiences in leadership positions, where he faced the dual task of managing rapid team growth and maintaining software efficiency. Marc also shares insights into the startup ecosystem, noting that most startups struggle to achieve success due to a combination of market timing, team dynamics, and resource management. His own venture, The Shadow Boxing App, represents his attempt to return to hands-on coding while leveraging his extensive experience in startup coaching and advising. Marc also touches on the role of AI in the future of software development, expressing cautious optimism about its potential to augment human workflows and automate repetitive tasks. He advises current and aspiring developers to embrace AI as a tool to enhance their capabilities rather than a replacement for human ingenuity. Marc concludes by highlighting the importance of realistic expectations in the startup world and the need for continuous learning and adaptation in the ever-evolving tech landscape. Getaround (https://getaround.com/) Follow Getaround on LinkedIn (https://www.linkedin.com/company/getaround/), Facebook (https://www.facebook.com/getaround), X (https://twitter.com/getaround), YouTube (https://www.youtube.com/getaround), or Instagram (https://www.instagram.com/getaround/). Back Market (https://www.backmarket.com/en-us) Follow Back Market on LinkedIn (https://www.linkedin.com/company/back-market/), Facebook (https://www.facebook.com/BackMarketCom), X (https://x.com/backmarket), or Instagram (https://www.instagram.com/backmarket). The Shadow Boxing App (https://shadowboxingapp.com/) Follow Marc Gauthier on LinkedIn (https://www.linkedin.com/in/marcggauthier/). Follow thoughtbot on X (https://twitter.com/thoughtbot) or LinkedIn (https://www.linkedin.com/company/150727/). Transcript: RÉMY: This is the Giant Robots Smashing Into Other Giant Robots podcast, the Giant Robots on Tour series coming to you from Europe, West Asia, and Africa, where we explore the design, development, and business of great products. I'm your host, Rémy Hannequin. SAMI: And I'm your other host, Sami Birnbaum. RÉMY: If you are wondering who we are, make sure you find the previous podcast where we introduced the Giant Robots on Tour series by throwing random icebreakers at each other. And find out that Jared likes it when someone takes the time to understand someone else's point of view. Joining us today is Marc G Gauthier, a Solopreneur and Startup Coach. Marc, you used to be VP of Engineering at Drivy, now known as Getaround, and also Director of Engineering at Back Market. You also have been a coach and advisor to a startup for over a decade. Currently, your current adventure is being the Founder and Developer of The Shadow Boxing App available on the Apple App Store. We always like to go back to the start with our guests. Everyone has a story, and we are interested in your journey. So, Marc, what led you into the world of software engineering in the first place? MARC: Hello. Well, happy to be here. And, yeah, I started getting into software development quite a long time ago. I actually learned software development with QBasic when I was something like seven. And, from there, I just kept on learning, learning, and learning and got into school for it, then worked in different startups, and then moved into more leadership position management. And I'm now, like, coaching people and building my own product. What do you want to get? Because it's broad. I've been doing it for quite a while. Like, I don't think the QBasic days are that insightful. The only thing I remember from that time is being confused by the print comment that I would expect it to print on my printer or something, but it didn't; it just printed on the screen. That's the only thing I have from back then. SAMI: Why at seven years old? And I'm taking you back too far, but at seven years old, I was probably collecting Pokémon cards and possibly like, you know, those football stickers. I don't know if you had the Panini stickers. MARC: Oh yeah, I was doing that as well. SAMI: But you were doing that as well. But then what drove you at that age? What do you think it was that made you think, I want to start learning to code, or play around with the computer, or get into tech? MARC: [laughs] Yeah. Well, I remember, back then, I really wanted a computer to play games. Like, I had a friend who had a computer. He was playing games, and I wanted to do that. So, I was asking my mom to have a computer, and she told me, "Yeah, you can have one." And she found a really old computer she bought from a neighbor, I think. But she told me like, "I don't know anything about it. So, you have to figure it out and set it up." And she just found someone to kind of help me. And this person told me to, like, take the computer apart. She taught me a bit of software development, and I kind of liked it. And I was always trying to change the games. Back then, it was way easier. You could just edit a sound file, and you would just edit the sound file in the game, so yeah, just learning like this. It wasn't really my intent to learn programming. It just kind of happened because I wanted to play video games really. SAMI: That's really cool. It's really interesting. Rémy, do you remember how...how did you first get...do you remember your first computer, Rémy? RÉMY: My first computer, I think I remember, but the first one I used it was, first, a very long time ago. I discovered that it was an Apple computer way, way later when I discovered what Apple was and what computers were actually. And I just remember playing SimCity 2000 on it, and it was amazing. And we had to, you know, cancel people from making phone calls while we were on the computer because of the internet and all the way we had to connect to the internet back then. And after that, just, I think, Windows 95 at home. Yeah, that's the only thing I can remember actually. Because I think I was lucky, so I got one quite early. And I don't really remember not having one, so I was quite lucky with that. And so, I was always kind of in the computer game without being too much [inaudible 05:02] [laughs]. SAMI: Yeah, I think that's similar to me as well. Like, it's interesting because my initial introduction to computers would have been watching my older brothers kind of play computer games and actually being told to get out the room, or like, you know, "We're busy now. Don't bother us." And then, what actually happened is when they left the room, I managed to play what they were playing, which was the first ever GTA. I don't know if anyone ever played this, but it is so cool if you look back on it. You could probably find emulators online, but it was, like, a bird's eye view, like, way of operating. And it was probably also that drive where you get frustrated on a computer because you want to do something, so, like you were saying, Marc, where you went to edit the sound files because you want to change something. You want to do something. I definitely think that is something which I felt as well is that frustration of I want to change this thing. And then, that kind of gets into well, how does it work? And if I know how it works, then I can probably change it. MARC: Yeah. And once you figure out how things work, it's also really exciting. Like, once you figure out the initialization file on Windows, like, you can edit, like, what level is unlocked right away. It's kind of cheat codes but not really. And there are some really fun ones. Like, I would edit sound files for racing games. And, usually, it's just a base sound file, and then they would pitch shift the sound to make it sound like an engine. So, if you record your voice, it's just really funny. RÉMY: So, Marc, you mentioned moving to management positions quite early. Do you remember what made you do this move? Was it for, like, a natural path in your career, or was it something you really wanted from the first part of your career as a developer? What happened at this moment? MARC: Yeah, that was not completely planned. Like, I don't think I really plan my career precisely. It's just something that happens. So, I joined Drivy after, like, I was already a software engineer for, like, five years at that point. I joined as a lead backend engineer. I did that for three years. And after three years, the company went from...I think there was, like, three software engineers to a dozen. There was a need for more structure, and the CTO, at the time so, Nicolas, wanted to focus more on products. And it was hard to do both, like do the product side, the design, the data, and do the engineering, the software, and so on. So, he wanted to get a bit away from software engineering and more into product. So, there was a gap in the organization. I was there. I was interested to try, and I was already doing some more things on the human side, so talking to people, organizing, internal communication. I kind of liked it. So, I was excited to try, give it a try. It was really interesting. I found that it was a different way to have an impact on the team. I just kept doing it. And my plan was to keep doing it until I'm bored with it. And I'm still not bored with it, even though you kind of miss just actually building the software yourselves, actually coding. So, that's also why I'm trying something different right now with my mobile app adventure. SAMI: Right. So, on the side, you've got this Shadow Boxing App, which, in my dedicated research, I downloaded and had a go with it. MARC: Did you actually try it, or did you just click around? SAMI: I did a proper workout, mate. I did. I put myself as, like, the absolute beginner. I did it on my MacBook Pro. I know it's built for iPad or iPhone, but it still worked amazingly well. And it kind of reminded me why I stopped doing boxing because it's hard work. MARC: [laughs] Yeah, it is. SAMI: It's not a gimmick this thing, right? So, it's like, the best way to describe it is it's essentially replacing if I was to go to the gym and have a trainer who's telling me kind of the moves to make or how to do it, then this kind of replaces that trainer. So, it's something you can do at home. It was really cool. I was surprised, actually. I thought, at the beginning, it's not going to be that interactive, or it won't actually be as hard or difficult as a workout, and it really was. So, it's, yeah, it was really cool, really interesting to try it. And going into that, you say you wanted to get back more into coding, and that's why you are doing this kind of, like, app on the side, or it allowed you to kind of do a bit more coding away from the people management. You've been involved in a lot of startups, and I actually often get...as consultants, when we work at thoughtbot, we get a lot of people who come with different startup ideas. When you look back at all the startups you've been involved with, do you think more startups are successful than those that fail? Or have you seen a lot of startups...actually, people come with these great ideas; they want to build this amazing product, but it's actually really hard to be a successful product? MARC: I think it's [inaudible 10:22] how to have the right idea, be at the right spot at the right time, build the right team, get enough momentum. I think most startups fail, and even startups that are successful often can be the result of a pivot. Like, I know companies that pivoted a bunch of times before finding any success. So, it's really hard actually...if I take my past four companies, only two are still alive. Like, the first two went under. Actually, there's even more companies that went under after I left. Yeah, it's just really hard to get anything off the ground. So, yeah, it's complicated, and I have a lot of respect for all the founders that go through it. For The Shadow Boxing App, I worked on it for the past three years, but I'm only working on it almost full-time for the past two months. And it was way safer. I could check the product-market fit. I could check if I enjoyed working on it. So, I guess it was easier. I had the luxury of having a full-time job. Building the app didn't take that much time. But to answer your question, I think, from my experience, most startups fail. And the ones that succeed it's kind of lightning in a bottle, or, like, there's a lot of factors that get into it. It's hard to replicate. A lot of people try to replicate some science, some ideas. They go, oh, we'll do this, and we'll do that. And we use this technique that Google uses and so on, but it's never that straightforward. SAMI: Yeah, I'm so happy you said that because I think it's a real brutal truth that I'd also say most of the startup projects that I've worked on probably have failed. Like, there's very few that actually make it. It's such a saturated market. And I think, I guess, in your role as advising startups, it's really good to come in with that honesty at the beginning and to say, "It's a big investment if you want to build something. Most people probably aren't successful." And then, when you work from that perspective, you can have, like, way more transparent and open discussions from the get-go. Because when you're outside of tech...and a lot of people have this idea of if I could just get an app to do my idea, I'm going to be the next Facebook. I'm going to be the next, you know, Amazon Marketplace. And it just kind of isn't like that. You've got these massive leaders in Facebook, Amazon, Google, Netflix. But below that, there's a lot of failures and a massively saturated market. So, yeah, just, it's so interesting that you also see it in a similar way. MARC: What I saw evolve in the past 10 years is the fact that people got more realistic with it. So, maybe 10 years ago, I would have people coming to me with just the most ridiculous idea, like, you know, I'll do Airbnb for cats. And really think, yeah, I just need a good idea, and that's it. But now I feel like people kind of understand that it's more complicated. There's way more resources online. People are more educated. They also see way more successes. Failures are also a bit more advertised. We saw a bunch of startups just go under. It feels like every month I get an email from a tool I used in the past saying, "Oh, we're shutting down," and so on. So, I think it's not as bad as 10 years ago where weekly I would have just people asking me, "I want to build this app," and the app would be just the most ridiculous thing or something that would be really smart, but it's really like, "Oh, I want to do, like, food delivery but better than what exists." It's like, yeah, that's a really good idea, but then you need...it's not only software. There's logistics. There's so much behind it that you don't seem to understand just yet. But, as a coach, so, what I'm doing is I'm helping startups that are usually before or after series A but not too large of startups just go to the next stage. And people are really aware of that and really worried. Like, they see money going down, market fit not necessarily being there. And they know, like, their company is at risk. And especially when you talk to founders, they're really aware that, you know, everything could be collapsing really quickly. If they make, like, three really bad decisions in a row, you're basically done. Obviously, it depends on the company, but yeah, people are more aware than before, especially nowadays where money is a bit harder to get. Let's say two years ago, there was infinite money, it felt like. Now it's more tight. People are more looking at the unit economics precisely. So, people need to be more realistic to succeed. RÉMY: What's the kind of recurrent struggle the startups you coach usually face? Apparently, it quite changed in the past decade, but maybe what are the current struggles they face? MARC: It really depends. It's kind of broad. But, usually, it would be, let's say, a startup after their first round of funding, let's say, if you take startups that are looking for funding. So, you usually have a group of founders, two to four, usually two or three, that are really entrepreneurs that want to bootstrap some things. They're builders. They're hacking things together, and they're really excited about the product. And, suddenly, fast forward a few years, they're starting to be successful, and they have to lead a team of, you know, like, 50 people, 100 people, and they weren't prepared for that. They were really prepared to, like, build software. Like, especially the CTOs, they are usually really great hackers. They can, like, create a product really quickly. But, suddenly, they need to manage 30 engineers, and it's completely different, and they're struggling with that. So, that's a common problem for CTOs. And then, it creates a bunch of problems. Like, you would have CEOs and CTOs not agreeing on how to approach the strategy, how to approach building a thing. What should be the methodology? Something that worked with 3 engineers around the table doesn't work with 50 engineers distributed in 5 countries. And if it's your first time being a CTO, and often founders of early-stage startups are first-time CTOs, it can be really hard to figure out. MID-ROLL AD: Are your engineers spending too much time on DevOps and maintenance issues when you need them on new features? We know maintaining your own servers can be costly and that it's easy for spending creep to sneak in when your team isn't looking. By delegating server management, maintenance, and security to thoughtbot and our network of service partners, you can get 24x7 support from our team of experts, all for less than the cost of one in-house engineer. Save time and money with our DevOps and Maintenance service. Find out more at: tbot.io/devops. RÉMY: In your past companies, so you've been VP and CTO. So, in your opinion, what's the best a VP or a CTO can bring to a scaling startup? What are your best tips to share? MARC: I guess it depends [laughs], obviously, like, depending on the stage of the company, the size of the company. For instance, when I was at Drivy, at some point, the most important thing was scaling the team hiring, and so on. But, at some point, we got acquired by Getaround, and the priorities got shifted. It was more like, okay, how do you figure out this new setup for the company and the team? Like, what is good? What is bad? How do you communicate with the team? How do you get people to stay motivated when everything is changing? How do you make sure you make the right decisions? And then, when I joined Back Market, Back Market when I joined, I had a team of a bit less than 12 engineers reporting directly to me. And after a bit more than a year, I had 60, and I hired most of them. So, here the challenge was just scaling insanely fast. Like, the company is really successful. Like, Back Market is selling refurbished electronics in a mission to, you know, provide a viable alternative to buying new electronics. So, it's basically, do you want a smartphone that is both cheaper and more ecologically viable? And most people would say yes to that. So, a company is insanely successful, but it's really hard to scale. So, at that point, the role was, okay, how do you make sure you scale as well as possible with a lot of pressure while still leaving the team in a state that they're able to still build software? Because it's just really chaotic. Like, you can't, like, 5X your team without chaos. But how do you minimize that but still go really fast? SAMI: Yeah. So, not only did I try that Shadow App. I actually went on that Backup website. What's it called? It's not called Backup. What's it called again? MARC: Back Market. SAMI: Back Market. Thank you. Yeah, it was really cool. I checked my old iPhone SE from 2020, which I've kept for about...over three years, I've had this iPhone. And they said they would give me $72 for it, which was really cool. So, it sounds like a really cool idea. MARC: That's something we worked on, which is, basically, if you have any old phones in your drawer, it's a really bad spot for them. And so, there's a service. You go on the website. You say, "I have this, I have that; I have this, I have that." And either we buy it from you, or we just take it away from you, and we recycle them, which is much better than just having them collect dust. SAMI: Yeah, no, it's a great idea. What interested me when you were speaking about kind of these different positions that you've been in, I was almost expecting you to talk about maybe, like, a technical challenge or code complexity difficulty. But, actually, what you've described is more people problems. And how do we scale with regards to people, and how do we keep people motivated? So, I guess using that experience, and this might be counterintuitive to what a lot of people think, but what do you think is the hardest thing about software development? I know there could be many things. But if you had to pick something that is the most difficult, and maybe we can all have an answer to what we think this is, but starting with you, Marc, what do you think is the hardest thing about software development then? MARC: What I saw is how do you build something that works for enough time to bring value to the customers? So, it's easy to hack something together pretty quickly and get it in front of people, but then it might not be reliable. It might break down. Or you could decide to build something perfect and spend, like, two years on it and then ship it, and then it's really stable, but maybe it's not what people want. And finding this balance between shipping something fast, but shipping something that is reliable enough for what you're building. Obviously, if you're building a health care system, you will have more, like, the bar will be higher than if you build, like, Airbnb for cats. Finding this balance and adjusting as you go is really hard. So, for instance, when do you introduce caching? Because, obviously, caching is hard to do right. If you don't do it, your site will be slow, which can be okay for a time. But then if you introduce it too late, then it's really hard to just retrofit into whatever you already have. So, finding the right moment to introduce a new practice, introduce a new technology is tricky. And then, like, I talked a lot about the people, and it's also because I spent quite a bit of time in leadership position. But, at the end of the day, it will be the people writing the code that gets the software to exist and run. So, having people aligned and agreeing on the vision is also key because unless I'm the only developer on the project, I can't really make all decisions on things that are going to get built. So, figuring out how to get people motivated, interested in just building in the same direction is really important. It's really easy. Like, one thing with Drivy, when I was there, that was really fun to see, like, many people have this reaction, especially the more senior people joining the company. They would see the engineering team, and they were really, really surprised by how small it was because we were being really, really efficient. Like, we were paying really close attention to what we would work on. So, kind of technology we would introduce would be quite conservative on both to really be able to deliver what is the most important. So, we were able to do a lot with, honestly, not a lot of people. And I think this is a great mark for success. You don't need a thousand people to build your software if you ask the right question, like, "Do I need to build X or Y?" and always having these discussions. RÉMY: What's your opinion on that, Sami? SAMI: Yeah, I guess it changes. Like, for example, today, the hardest thing about software development was just getting Jira to work. That has literally ruined my whole day. But I've found, for me, what I find is the most difficult thing to do is making code resilient to change. What I mean by that is writing code that's easy to change. And a lot of that, I guess, we try to work on at thoughtbot, as consultants, is following kind of design principles and best practices and certain design patterns that really make the code easy to change. Because that, I think, when I'm writing code is the biggest challenge. And where I feel when I'm working with our clients one of the biggest things they can invest in, which is difficult because there's not a lot of visibility around it or metrics, is ensuring that code that's written is easy to change because, at some point, it will. And I've also worked on systems which are bigger, and when you can't change them, conversations start happening about the cost of change. Do we rewrite it from the ground up again? And that opens a whole different can of worms. So, that, for me, I think, is definitely one of the hardest things. How about yourself, Rémy? RÉMY: I don't know about the most difficult. I mean, there are many things difficult. But I remember something that I had to put extra effort, so maybe it was one of the most difficult for me. When I started being a consultant, when I joined thoughtbot was to understand what's the boundary between executing and giving an advice? So, basically, I discovered that when you're a consultant, but it works also when you're a developer in a team, you know, you're not just only the one who is going to write the code. You're supposed to be also someone with expertise, experience to share it and to make the project and the team benefit from it. So, at some point, I discovered that I should not just listen to what the client would say they want. Obviously, that's what they want, but it's more interesting and more difficult to understand why they want it and why they actually need, which could be different from what they want. So, it's a whole different conversation to discover together what is actually the necessary thing to build, and with your expertise and experience, try to find the thing that is going to be the most efficient, reliable, and making both the client and the customers happy. MARC: Yeah. And as software engineers, it's really easy to get excited about a problem and just go, "Oh, I could solve it this way." But then you need to step back and go, "Well, maybe it doesn't need fixing, or we should do something completely different." At some point, I was working with a customer service organization. In their workflows, they had to go on, let's say, five different pages and click on the button to get something to do one action. And so, what they asked for is to have those five buttons on one single page, and so, they could go, click, click, click, click, click. But after looking at it, what they needed is just automation of that, not five buttons on the page. But it's really easy to go, oh, and we could make those buttons, like, kind of generic and have a button creator thing and make it really fancy. When you step back, you go, oh, they shouldn't be clicking that many buttons. SAMI: Yeah, that makes so much sense because just in that example...I can't remember where I read this, but every line of code you write has to be maintained. So, in that example where you've got five buttons, you're kind of maintaining probably a lot more code than when you've got the single button, which goes to, I don't know, a single action or a method that will handle kind of all the automation for you. And that's also, you know, driving at simplicity. So, sometimes, like, you see this really cool problem, and there's a really cool way to solve it. But if you can solve it, you mentioned, like, being conservative with the type of frameworks maybe you used in a previous company, like, solve it in the most simple way, and you'll thank yourself later. Because, at some point, you have to come back to it, and maintain it, change it. Yeah, so it makes a lot of sense. And, Marc, you said you started when you were 7, which is really young. Through that amount of time, you've probably seen massive changes in the way websites look, feel, and how they work. In that time, what's the biggest change you actually think you've seen? MARC: The biggest thing I saw is, when I started, internet didn't exist or at least wasn't available. Like, I remember being at school and the teacher would ask like, "How many people have a computer at home?" And we'd be like, two or three people. So, people didn't have internet until I was like 14, 15, I'd say. So, that's the biggest one. But, let's say, after it started, they just got more complicated. Like, so, the complexity is getting crazy. Like, I remember, at some point, where I saw I think it was called Aviary. It was basically Photoshop in the browser, and I was just insanely impressed by just the fact that you could do this in the browser. And, nowadays, like, you've got Figma, and you've got so many tools that are insanely impressive. Back then, it was just text, images, and that's it. I actually wrote a blog post a few years ago about how I used to build websites just using frames. So, I don't know if you're familiar with just frames, but I didn't really know how to do divs. So, I would just do frames because that's what I understood back then, again, little kid. But it was kind of working. You were dealing with IE 5 or, like, I remember, like, professionally fixing bugs for IE 5.5 or, like, AOL, like, 9, something ridiculous like this. So, building a website just got way easier but also way more complicated, if that makes sense. Like, it's way easier to do most things. For instance, I don't know, like, 20 years ago, you wanted a rounded corner; you would have to create images and kind of overlay them in a weird way. It would break in many cases. Nowadays, you want rounded corners? That's a non-topic. But now you need, like, offline capabilities of your website. And, in a lot of cases, there's really complex features that are expected from users. So, the bar is getting raised to crazy levels. SAMI: Yeah, I always wonder about this. Like, when you look at how the internet used to be and how people develop for the internet, and, like you're saying, now it's more complex but easier to do some things. I don't know if as developers we're making things harder or easier for ourselves. Like, if you look at the amount of technology someone needs to know to get started, it grows constantly. To do this, you have to add this framework, and you need to have this library, and maybe even a different language, and then, to even host something now, the amount of technologies you need to know. Do you think we're making things harder for ourselves, or do you think easier? MARC: Well, I guess there's always back and forth, like, regarding complexity. So, things will get really, really complex, and then someone will go, "Well, let's stop that and simplify." That's why, like, I'm seeing some people not rejecting React and so on, but going a simpler route like Rails has options like this. There's people using HTMX, which is really simple. So, just going back to something simpler. I think a lot of the really complex solutions also come from the fact that now we have massive teams building websites, and you need that complexity to be able to handle the team size. But it's kind of, then you need more people to handle the complexity, and it's just getting crazy. Yeah, honestly, I don't know. I'm seeing a lot of things that feel too complex for...like, the technology feels really complicated to accomplish some things that should be simple or at least feel simple. But, at the same time, there are things that got so simple that it's ridiculous like just accepting payment. I remember, like, if you wanted to accept payment on a site, it would be months of work, and now it takes a minute. You just plug in Stripe, and it works. And it's often cheaper than what it used to be. So, it's kind of...or deploying. You mentioned deploying can be really hard. Well, you don't need to have a physical server in your room just eating your place up to have your website, your personal website running. You just push it to Vercel, or Heroku, or whatever, or just a static page on S3. So, this got simpler, but then, yeah, you can get it to be so much more crazy. So, if you host your static website on S3, fairly simple. But then if you try to understand permissions on S3, then, you know, it's over. RÉMY: I don't know if it's really in the path of our discussion. I just wanted to ask you, so this is the on tour series, where we...so, usually, the Giant Robots podcast used to be a little bit more American-centric, and this on tour is moving back to the other side of the Atlantic with, again, Europe, West Asia, and Africa. You've been part of a company, Drivy, which expanded from France to neighboring countries in Europe. What could you tell our listeners about how to expand a business internationally? MARC: That's a tough question, especially in Europe. Because I know looking from the outside, like, if you're from the U.S. and you look at Europe, it feels like, you know, a uniform continent, but really, it's very different. Like, just payment methods are different. Culture is very different. For instance, when I was working at Back Market in France, one of the branding aspects of Back Market was its humor. Like, we would be making a lot of jokes on the website, and it would work really well in France. Like, people would love the brand. But then you expand to other countries, and they just don't find that funny at all. Like, it's not helping at all, and they're expecting a different tone of voice. So, it's not just, okay, I need to translate my own page; it's I need to internationalize for this market. I guess my advice is do it country by country. Sometimes I see companies going like, oh, we opened in 20 different countries, and you go, how even do you do that? And spend some time understanding how people are using your product or, like, a similar product locally because you would be surprised by what you learn. Sometimes there's different capabilities. For instance, when Drivy went to the UK, there's so much more you can learn. There's the government database that you can look up, and it really helps with managing risk. If people are known to steal cars, you can kind of figure it out. I'm simplifying a bit, but you can use this. You don't have that in France because we just don't have this solution. But if you go to Nordic countries, for instance, they have way more electric vehicles, so maybe the product doesn't work as well. So, it's really understanding what's different locally and being willing to invest, to adapt. Because if you go, okay, I'm going to open in the Netherlands but you don't adopt the payment methods that are used in the Netherlands, you might as well not open at all. So, it's either you do it properly and you kind of figure out what properly means for your product, or you postpone, and you do it well later. Like, right now, I'm struggling a bit with my app because it's open. So, it's on the App Store, so it's open globally. And it's a SaaS, so it's simpler, but I struggle with language. So, it's in French and English. I spoke both of this language, obviously, French better than English. But I think I'm doing okay with both. But I also built it in Spanish because I speak some Spanish fairly poorly, and I wanted to try to hit a different market like the Mexican market that are doing boxing quite a lot. But the quality doesn't seem there. Like, I don't have the specific boxing lingo, so I'm contemplating just rolling it back, like, removing the Spanish language until I get it really well, maybe with a translator dedicated to it that knows boxing in Spanish. Because I work with translators that would translate, but they don't really know that, yeah, like a jab in boxing. In Spanish, they might also say, "Jab." They won't translate it to, like, [inaudible 38:31]. SAMI: Yeah. At thoughtbot, we have one of our clients they wanted to release their app also internationally. And so, we had also kind of a lot of these problems. We even had to handle...so, in some languages, you go from left to right, right to left. So, that kind of also changed a lot of the way you would design things is mainly for people who are going from left to right. I mean, that's thinking kind of more Europe, U.S.-centric. And then, you could be releasing your app into a different country where they read the other direction. So, yeah, a lot of this stuff is really interesting, especially the culture, like you're saying. Do they find this humor funny? And then, how do they translate things? Which, in my head, I think, could you use AI to do that. Which is a nice segue into, like, the mandatory question about AI, which we can't let you go until we ask you. MARC: [laughs] SAMI: So, okay, obviously, I'm going to ask you about your thoughts on AI and where you think we're headed. But I've seen something interesting, which I don't know if this is something that resonates with you as well. I've seen a bit of a trend where the more experienced developers or more senior developers I talk to seem to be a bit more calm and less concerned. Whereas I would consider myself as less experienced, and I feel, like, kind of more anxious, more nervous, more jumping on the bandwagon sort of feeling of keeping an eye on it. So, I guess, with your experience, what are your thoughts on AI? Where do you think we are headed? MARC: That's a big question, and it feels like it's changing month to month. It feels way more interesting than other trends before. Like, I'm way more excited about the capabilities of AI than, like, NFTs or stuff like this. I'm actively using AI tooling in my app. I was using some AI at Back Market. So, it's interesting. There's a bunch of things you can be doing. Personally, I don't think that it's going to, like, make programming irrelevant, for instance. It will just change a bit how you will build things just like...so, we talked about what changed in the past. For instance, at some point, you would need a team of people moving around physical computers and servers and just hooking them up to be able to have a website. But now, most people would just use a cloud provider. So, all those people either they work for the cloud provider, or they're out of a job. But really what happened is most shifted into something different, and then we focused on something different. Instead of learning how to handle a farm of servers, we learned how to, I don't know, handle more concurrency in our models. And I think when I look back, I feel like, technically, maybe, I don't know, 70%, 80% of what I learned is now useless. Like, I spent years getting really good at handling Internet Explorer as a web developer. Now it's just gone, so it's just gone forever. And it feels like there's some practice that we're having right now that will be gone forever thanks to AI or because of AI, depending on how you look at it. But then there'll be new things to do. I'm not sure yet what it will be, but it will create new opportunities. There are some things that look a bit scary, like, or creepy. But I'm not worried about jobs or things like this. I'm a bit concerned about people learning programming right now because, yeah, there's a lot of hand-holding, and there's a lot of tools that you have to pay to get access to this hand-holding. So, if you're a student right now in school learning programming and your school is giving you some AI assistant, like Copilot or whatever, and this assistant is really good, but suddenly it goes away because you're not paying anymore, or, like, the model change, if you don't know how to code anymore, then it's a problem. Or maybe you're not struggling as much. And you're not digging deep enough, and so you're learning slower. And you're being a bit robbed of the opportunity to learn by the AI. So, it's just giving you the solution. But it's just, like, the way I use it right now, so I don't have an assistant enabled, but I usually have, like, a ChatGPT window open somewhere. It's more like a better Stack Overflow or a more precise Stack Overflow. And that helps me a lot, and that's really convenient. Like, right now, I'm building mostly using Swift and Swift UI, but I'm mainly a Ruby and JavaScript developer. So, I'm struggling a lot and being able to ask really simple questions. I had a case just this morning where I asked how to handle loading of images without using the assets folder in Xcode. I just couldn't figure it out, but it's really simple. So, it was able to tell me, like, right away, like, five options on how to do it, and I was able to pick the one that would fit. So, yeah, really interesting, but yeah, I'm not that worried. The only part I would be worried is if people are learning right now and relying way too much on AI. RÉMY: Well, at least it's positive for our job. Thank you for making us believe in a bright future, Marc. MARC: [laughs] RÉMY: All right. Thank you so much, Marc, for joining us. It was a real pleasure. Before we leave, Marc, if you want to be contacted, if people want to get a hold of you, how can you be contacted? MARC: There's two ways: either LinkedIn, look up Marc G Gauthier. Like, the middle initial is important because Marc Gauthier is basically John Smith in France. My website, which is marcgg.com. You can find my blog. You can find a way to hire me as a coach or advisor. That's the best way to reach out to me. RÉMY: Thank you so much. And thank you, Sami, as well. You can subscribe to the show and find notes along with a complete transcript for this episode at giantrobots.fm. If you have any questions or comments, you can email us at hosts@giantrobots.fm. You can find me on social media as rhannequin. This podcast is brought to you by thoughtbot and produced and edited by Mandy Moore. Thanks for listening, and see you next time. AD: Did you know thoughtbot has a referral program? If you introduce us to someone looking for a design or development partner, we will compensate you if they decide to work with us. More info on our website at: tbot.io/referral. Or you can email us at: referrals@thoughtbot.com with any questions.