Elm Radio
97 episodes - English - Latest episode: 5 months ago -Tune in to the tools and techniques in the Elm ecosystem.
Homepage Google Podcasts Overcast Castro Pocket Casts RSS feed
Episodes
096: Optimizing Bundle Size
December 04, 2023 13:00 - 1 hour - 66.5 MBThe cost of JavaScript in 2019 (discusses the cost of JSON parsing strings vs. JS JSON literals in this section) img tag lazy attribute dillonkearns/elm-bcp47-language-tag jfmengels/elm-review-unused Mario Rogic's gist on the reasons code splitting can't be done right now with Elm's compiler internals Breaking up with SVG-in-JS blog post HTML use tag lets you do SVG sprite sheets Elm Radio Code Generation episode matheus23/elmjs-inspect Projects We Wish We Had Time For episode Why...
095: elm-open-api with Wolfgang Schuster
November 20, 2023 13:00 - 1 hour - 71.6 MBWolfgang Schuster (github) (twitter) elm-open-api (NPM package) (Elm package) Akita (now part of postman) JSON Schema dillonkearns/elm-form Wolfgang's Effortless SDKs blog post GraphQL Custom Scalar Codecs feature in dillonkearns/elm-graphql elm-units package Open API Generator swagger-elm elm-open-api Real World example
094: elm-concurrent-task with Andrew MacMurray
November 06, 2023 13:00 - 1 hour - 57.3 MBAndrew MacMurray (github) (site) elm-concurrent-task lobanov/elm-taskport elm-pages v3's BackendTask API elm-review-simplify 0ui/elm-task-parallel package elm/core Task API lamdera-program-test elm-pkg-js - A standard for shipping simple JS with Elm Packages elm-concurrent-task pipeline worker example
093: elm-visualization with Jakub Hampl
October 23, 2023 12:00 - 1 hour - 66 MBJakub Hampl (github) (site) elm-visualization elm-visualization intro guide elm-visualization's Scale API D3 selections elm-vega and elm-vega-lite elm-visualization's example gallery gampleman/elm-example-publisher WGS84 spec avh4/elm-color elm-community/typed-svg folkertdev/one-true-path-experiment elm-visualization 2.4.0 release notes Weather radial example gampleman/elm-rosetree
092: Elm News with Wolfgang Schuster
October 09, 2023 12:00 - 1 hour - 70.2 MBWolfgang Schuster (github) (twitter) Elm Weekly Elm Camp segakcap Elm Online Meetup Elmcraft Elm Land Elm at a Billion Dollar Company episode Elm 2022 Year in Review post The Elm Discourse Casper Schipper's audio/visual art piece Email elmweekly.wolfgang <at> gmail.com to suggest links for the newsletter
091: Code Reading Club with Katja Mordaunt
September 25, 2023 12:00 - 1 hour - 71.4 MBKatja Mordaunt (github) (website) Code Reading Club Code Reading Club's GitHub Felienne Hermans The Inner Game of Tennis Felienne's book The Programmer’s Brain Scaling Elm Apps Elm Radio episode
090: elm-land with Ryan Haskell-Glatz
September 11, 2023 12:00 - 1 hour - 62.8 MBRyan Haskell-Glatz (twitter) (youtube) (github) (sponsor) elm-land Elm Radio elm-spa episode Evan's talk Let’s be mainstream! "Take responsibility for user experiences" (from the Elm philosophy) Ryan's live stream video 🌱 Upgrading from elm-spa • Elm Land LIVE Ryan's experimental NPM tool css-in-elm elm-land guide's section on components Elm Radio elm-watch episode Bats-core: Bash Automated Testing System Join the elm-land Discord Sponsor Ryan on GitHub
089: The Human Side of Open Source
August 28, 2023 18:53 - 1 hour - 66.7 MBElm Radio episode Funding Open Source with Evan Czaplicki Nonviolent Communication David Marquet TED Talk How Great Leaders Serve Others Elm Radio episode Developer Productivity
088: Avoiding Unused Code
August 14, 2023 12:00 - 1 hour - 61.3 MBelm-review-unused Safe dead code removal in a pure functional language Elm Town 60 with Wolfgang Schuster - Productivity and the culture of moving a little bit slower
087: Evergreen Migrations with Mario Rogic
July 31, 2023 12:00 - 1 hour - 90 MBMario Rogic (GitHub) (Twitter) Lamdera Mario's Elm Europe talk Evergreen Elm Lamdera 1.1.0 release notes (automatic migration generator) elm-pkg-js spec
086: elm-pages v3
July 17, 2023 12:00 - 1 hour - 76 MBelm-pages scripts episode OptimizedDecoder in elm-pages v2 Netlify's DPR (Distributed Persistent Rendering) elm-pages v3 Express community adapter elm-pages v3 Session API Writing Great Docs episode dillonkearns/elm-form episode elm-pages v3 announcement post
085: Why We Care About Elm
July 03, 2023 12:00 - 1 hour - 63 MBRuby Enumerable module Ruby Shovel Operator Jeroen's Elmcraft post ESLint Equivalents in Elm Lamdera elm-ui elm-tailwind-modules elm-format lamdera/program-test
084: Writing Great Docs
June 19, 2023 12:00 - 1 hour - 92.1 MBEvan's Elm philosophy tweet elm-review docs elm-doc-preview elm-review-documentation elm-verify-examples sparksp/elm-review-forbidden-words elm-package-starter Idiomatic Elm Package Guide elm-book Elm Radio episode How (And When) to Publish a Package Docs for Developers book
083: elm-review Data Extractors
May 22, 2023 12:00 - 1 hour - 67.4 MBelm-review Data Extractors elm-codegen elm-pages Scripts jfmengels/elm-review-license NoDeprecated Rule elm-review preventExtract function Brian Hicks' tree-grepper elm-review ModuleNameLookupTable jfmengels/elm-review-cognitive-complexity elm-coverage elmi-to-json Review.Test.expectDataExtract Jeroen's blog post Gaining insight into your codebase with elm-review
082: Elm and Haskell with Flavio Corpa
May 08, 2023 12:00 - 1 hour - 79.2 MBFlavio Corpa (github) Flavio's blog post series Giving Names to Stuff Running Out of Maps blog post Elm Radio Category Theory episode Functors Applicative Monad Quick check haskell cherry-core NRI prelude Scaling elm apps episode lexi-lambda comment about laziness in Haskell Effectful Haskell library undefined in Haskell Strange Loop conference talk Point-Free or Die: Tacit Programming in Haskell and Beyond Elm 0.18 functions curry, uncurry, and flip Elm in Action Haskell P...
081: elm-form
April 24, 2023 12:00 - 1 hour - 58.9 MBdillonkearns/elm-form Exploring a New Form API Design episode (discussion of some ideas that became dillonkearns/elm-form) Ellie example of elm-form Meetdown code that does additional checks to ensure that opaque type are trusted (sending unparsed data in Lamdera sendToBackend avoids this pattern) Lamdera example with elm-form elm-app-url dillonkearns/elm-package-starter
080: Elm and AI
April 11, 2023 18:16 - 1 hour - 76.2 MBChatGPT GitHub Co-Pilot Tweet showing intermediary questions prompt engineering technique elm-gql episode Dillon's prompt engineering type puzzle examples Decode mapping solution (correct on first try) Markdown solution with 2 corrections from compiler feedback Dillon's Frame Then Fill In blog post describes a similar method to the GPT prompt
079: Scaffolding Elm Code
March 28, 2023 01:33 - 1 hour - 62.6 MBelm-codegen episode Elm Code Generation episode Scaffold API in elm-pages v3 beta Exploring a New Form API Design episode DHH Building a Rails blog in 15 minutes elm-pages Scripts episode Example of elm-pages AddRoute script elm-pair elm-review-html-to-elm alexkorban/elm-review-json-to-elm
078: Color parameters in elm-tailwind-modules with Philipp Krüger
March 13, 2023 12:00 - 1 hour - 62.8 MBPhilipp Krüger, aka matheus23 (github) (twitter) matheus23/elm-tailwind-modules matheus23/elm-default-tailwind-modules TailwindCSS Introduction to elm-tailwind-modules Elm Radio episode Tailwind UI html-to-elm.com elm-review-html-to-elm package matheus23/elm-tailwind-modules-base
077: elm-app-url with Simon Lydell
February 27, 2023 13:00 - 1 hour - 61.4 MBSimon Lydell (github) lydell/elm-app-url Short YouTube walkthrough Introducing elm-app-url John Kelly's blog post explaining the URL parser types understanding the design of elm/url Richard Feldman's conference talk explaining early elm-css syntax design ideas and changes over time The Design Evolution of elm-css and elm-test URLSearchParams in JavaScript WHATWG URL Standard Arlo Belshee post on WET (Write Explicit Tests)
076: Elm and Vite
February 13, 2023 13:00 - 57 minutes - 52.7 MBLindsay Wardell (github) Vite ESM (native JS module import statement) esbuild Rollup Vitest Turbopack Vite SSR mode (for framework authors) vite-plugin-elm Docs on configuring Vite Lindsay's vite-elm-template Web Workers API Lindsay's blog post Utilizing Elm in a Web Worker elm-watch Elm Radio episode Article about finding Google Fonts embeds to be in violation of GDPR Google fonts download plugin setup in the elm-pages docs site vite-node awesome-vite repo Lindsay's ViteC...
075: elm-pages scripts
January 30, 2023 13:00 - 1 hour - 68.2 MBelm-pages v3 (still in pre-release) elm-pages v2 DataSources are called BackendTasks in v3 Feels similar to elm/core Task (andThen, map, mapError) Script.log Minimal setup repo for running scripts wolfadex/elm-ink BackendTask.Custom mdgriffith/elm-codegen FatalError BackendTask.allowFatal Zod dillonkearns/elm-cli-options-parser (Elm package for parsing command-line flags and showing help text) Other Elm tools for running scripts elm-posix elm-script elm-pages V3 starter (stil...
074: Plug and Play Design Systems with Georges Boris
January 16, 2023 13:00 - 1 hour - 67.9 MBGeorges Boris (twitter) (github) (Uncover) elm-widgets Twitter Bootstrap elm-theme elm-theme Tailwind plugin elm-sortable-table philosophy in readme Confidenceman02/elm-select/latest/ tesk9/elm-accessible-html tesk9/palette elm-theme showcase site using Elm Book elm-theme theme generator Why Breaking Up with CSS-in-JS blog post Loading widgets Modal widgets details HTML element dialog HTML element Tooltips CSS :has() pseudo-class JS tool for theming Theme UI
073: Security in Elm
January 02, 2023 13:00 - 1 hour - 56.4 MBBobby Tables XKCD comic SQL injections DDoS attacks XSS (Cross-Site Scripting) attack prevention cheatsheet Jeroen's blog post Fixing vulnerabilities in Elm's virtual DOM HTTP cross origin cookie policy options Richard's Oslo Elm Day keynote where he discusses rolling your own tools for security reasons lukewestby/elm-http-builder Output Encoding article Elm's Virtual DOM implementation Feross' CS 253 Stanford Web Security course on YouTube Web Security course notes and slides F...
072: 2022 Holiday Special
December 19, 2022 13:00 - 1 hour - 69.8 MBGuests Mario Rogic (twitter) (github) Matthew Griffith (twitter) (github) Links Elmcraft.org Jeroen's Elmcraft article ESLint equivalents in Elm Martin Janiczek's Elmcraft article on Let Polymorphism Elmcraft project on GitHub Elmcraft discord elm-codegen elm-gql Matt's Strange Loop talk CodeGen with Types, for Humans, by Humans Tail recursion modulo cons elm optimize level 2 pr elm-review extractors feature elm-pages-v3-beta elm-pages Script (v3 feature) OpenAI whisper ...
071: Deliberate Practice
December 05, 2022 13:00 - 1 hour - 69 MBPractice makes permanent Flow book by Mihaly Csikszentmihalyi Key Principles of Deliberate Practice Isolation Appropriate level of challenge Introspection Code katas Fuzz buzz Tennis kata Roman Numerals Kata Gilded rose Constraint games TDD is a core tenant of katas Exercism Martin Janiczek fuzz testing (and elm-test v2) episode Advent of Code Dillon's elm-katas starter repo Elm Gilded Rose starter repo TCR (test commit revert) Dillon and Corey Haines pairing using TCR on...
070: elm-gql with Matthew Griffith
November 21, 2022 13:00 - 1 hour - 72.8 MBvendrinc/elm-gql dillonkearns/elm-graphql elm-codegen The Insomnia API client has a graphql tool GraphQL variables Wrap early, unwrap late GraphQL Union Types GraphQL Enum types Dillon's Types Without Borders elm-conf talk GraphQL fragments Richard Feldman's talk Immutable Relational Data Elm Store Pattern episode remotedata package Elm Radio elm-graphql episode Vendr is hiring Dillon's Types Without Borders Isn't Enough blog post elm-ts-interop episode GraphQL approach for...
069: Types vs. Tests
November 07, 2022 13:00 - 1 hour - 63.8 MBIs TDD Dead? (TDD is Dead and associated video discussions with TDD experts) Roc-lang's tagged unions XP (Extreme Programming) 80-20 rule (i.e. Pareto Principle) Amanda Laucher's ScalaDays talk Types vs Tests Kent Beck's book TDD by Example dtwrks/elm-book Martin Janiczek's Elm Online talk on Storybook-driven development Talk with demo of program synthesis Relentless Tiny Habits Code Katas
068: Elm and ADD
October 24, 2022 12:00 - 1 hour - 61 MBGetting Things Done methodology Elm Radio Developer Productivity episode Elm Radio Parse, Don't Validate episode Scaling Elm apps Elm Radio episode Ruby's method_missing Ruby's Enumerble API methods Joël Quenneville's recommendation to write functions at a single level of abstraction elm-pages v3 API makes HttpOnly cookies opt-out instead of opt-in Llewellyn Falco and Woody Zuill's video Practical Refactoring ("Understand the code so we can change it" vs. "change the code so we can ...
067: Elm at a Billion Dollar Company with Aaron White
October 10, 2022 12:00 - 1 hour - 77.8 MBAaron White (github) (twitter) Vendr (github) Vendr, Software Procurement Startup, Raises $150 Million at Unicorn Valuation - Bloomberg Make Impossible States Impossible Luke Westby's talk on Web Components Richard Feldman's 2016 meetup talk on Web Components elm-spa-example elm-spa elm-spa-realworld example Evan's elm-sortable-table repo Actor framework or taco or Msg translator (nested TEA) didn't work out well elm-codegen Plop templating tool Storybook Evan's vision for dat...
066: elm-codegen with Matthew Griffith
September 26, 2022 12:00 - 1 hour - 74.3 MBMatthew Griffith (twitter) (github) elm-codegen elm-syntax elm-syntax-dsl elm-ui Elm.Type.Type from elm/project-metadata-utils represents all possible Elm types elm-codegen announcement post on Discourse Guides from the elm-codegen repo
065: elm-watch with Simon Lydell
September 12, 2022 12:00 - 1 hour - 82.1 MBSimon Lydell (twitter) (github) elm-watch Parcel build tool Building Trustworthy Tools Elm Radio episode Vite klazuka/elm-hot elm-tooling episode elm-watch run-pty example folder Simon's run-pty tool for running commands in parallel
064: Projects We Wish We Had Time For
August 29, 2022 12:00 - 1 hour - 74.9 MBSponsor: CareRev CareRev is looking for Senior Frontend Elm engineers (job listing). elm-review-simplify Elm Radio Root Cause of False Positives episode Dillon's pairing session using snapshot testing prototype with Corey Haines elm-snapshot-test prototype repo Approval testing elm-coverage elm-instrument Llewellyn Falco Gilded Rose kata video Idea: intellij integration for elm-coverage Idea: code actions for safe refactorings Idea: elm-review integration in intellij Idea: ...
063: The Root Cause of False Positives
August 15, 2022 12:00 - 1 hour - 64.5 MBJeroen's tweet on the root cause of false positives Epistemology Isabelle and TLA+ (proof systems) Precautionary principle array-callback-return ESLint rule elm-review's ModuleNameLookupTable Jeroen's Safe unsafe operations in Elm blog post Jeroen's Lambda Days 2022 talk (video not yet published)
062: elm-test v2 with Martin Janiczek
August 01, 2022 12:00 - 1 hour - 76.1 MBMartin Janiczek (github) (twitter) (youtube) elm-test episode Fuzzing is also known as Property-Based Testing Parameterized tests Martin's pure Elm text editor includes some fuzz tests Martin's pull request for the elm-test v2 changes Integrated shrinking vs the value-based (AKA type-based) approach Fuzz.andThen and Fuzz.filter (existed in 0.18 but were removed because they didn't shrink well) elm-test v2 upgrade guide and change notes Passing in random generators in elm-test v2 do...
061: Exploring a New Form API Design
July 18, 2022 12:00 - 1 hour - 66.2 MBParse, Don't Validate etaque/elm-form Codecs episode Some similarities in the design for how you build up Custom Type codecs with elm-codec
060: Building Trustworthy Tools
July 04, 2022 12:00 - 1 hour - 57.8 MBError messages should give three pieces of info The problem Why it's a problem How to go forward Needing to do magic incantations to get things into a good state adds cognitive load and makes debugging harder Make tools more predictable Clear mental model (avoid inconsistencies and leaky abstractions) Doing an operation through different means should consistently arrive at the same result Give context Avoid caveats Tweet about layering platforms properly Extensible web manifesto ...
059: Wrap Early, Unwrap Late
June 20, 2022 12:00 - 53 minutes - 48.8 MBPrimitive Obsession episode Parse, Don't Validate episode Dillon's Entry Gatekeepers and Exit Gatekeepers blog posts Dillon's talk on semantic types
058: Elm Store Pattern
June 06, 2022 12:00 - 1 hour - 72.1 MBMartin Janiczek (github) (twitter) (youtube) Martin's Store Pattern talk Store Pattern example GitHub repo Gizra fetch pattern blog post elm-fetch, and Easier HTTP Requests to Reason with Gizra elm-fetch package RemoteData package RemoteData blog post How Elm Slays a UI Antipattern elm-program-test is useful for integration testing data loading elm-suspense proof-of-concept repo Okay to use Store pattern for mutations, just kick them off outside of dataRequests Defunctionalization...
057: State of Elm 2022
May 23, 2022 12:00 - 1 hour - 73.5 MBMartin Stewart (github) State of Elm 2022 GitHub Repo Brian Hicks' State of Elm talk from Elm Europe Brian's State of Elm 2018 blog post GitHub issues for state of Elm repo elm-pages showcase page Martin's GOTO conference talk - Hobby Scale: Making Web Apps with Minimal Fuss Evan's talk What is Success What's Working for Elm episode Martin's Elm Online talk (including a preview of lamdera-test framework)
056: elm-book with Georges Boris
May 09, 2022 12:00 - 1 hour - 69.7 MBGeorges Boris (twitter) (github) elm-book Elixir's Hex docs Leaf lang docs site (built with elm-book) elm-verify-examples elm-book in elm-book guide elm-visualization examples site elm-charts site elm-widgets (alpha package docs) elm-admin (alpha package docs) elm-ui-explorer (alternative Elm storybook style framework - comes with knobs) dmy's Elm package repo site dmy's github elm-graphql selection set docs page (reads like a tutorial top to bottom) uncover.co
055: Use the Platform
April 25, 2022 12:00 - 1 hour - 69.2 MBAlex Russell's post Platform Adjacency Theory VoiceOver rotor utility Use semantic HTML to improve screen reader experiences Forms - use onsubmit with a form to get nice keyboard handling and screen reader accessibility datetime-local <input> tags MDN docs for sending form data HTMHell (examples of non-standard HTML from the wild and why it matters) Dillon's Use the Platform blog post
054: Developer Productivity
April 11, 2022 12:00 - 1 hour - 74.3 MBIncremental Steps episode Built-in quality (from Lean principles) Tiny commits Kent Beck's book TDD by example Dead Code episode Close open loops Getting Things Done (GTD) methodology Capturing Processing Pomodoro Method rainymood.com Centered App Trunk-based development elm-review template flag (preview folder) sparksp/elm-review-no-forbidden-words Self-documenting code Self-documenting code tweet and blog post elm-verify-examples API Design Lessons episode Hammock-Drive...
053: Dead Code
March 28, 2022 12:00 - 1 hour - 60.5 MBOxbow code (code that was once used but is no longer in use) Jeroen's elm-review-unused elm-review rule Jeroen's blog post Safe dead code removal in a pure functional language blog post elm-review-simplify Getting Things Done (GTD) methodology Inbox Zero Jeroen's no-extraneous-dependencies rule Try out elm-review-unused with elm-review --template jfmengels/elm-review-unused/example Jeroen's You thought you had no dead code post
052: Category Theory in Elm with Joël Quenneville
March 14, 2022 12:00 - 1 hour - 72.6 MBJoël Quenneville (Twitter) Elm's Universal Pattern episode List.concatMap is the same pattern as andThen under a different name andThen identity can be used to flatten something Dillon's Combinators article Martin Janiczek's elm-list-cartesian package gives two valid map2 implementions for List Monoid - need a way of having something empty, and way to combine two things - for example addition for numbers starting with 0 Jeroen's elm-review-simplify package More of Joël's distillatio...
051: Primitive Obsession
February 28, 2022 13:00 - 1 hour - 65.8 MBSolving the Boolean Identity Crisis (Elm Conf talk by Jeremy Fairbank) If It Compiles, It Works episode Opaque Types episode Life of a File talk by Evan Czaplicki Roc language ianmackenzie/elm-units package Parse, Don't Validate episode Using Semantic Types to Squash Bugs - Dillon's talk where he walks through the mechnical steps to safely introduce a wrapper type Dillon's Entry Gatekeepers blog post
050: Large Elm Codebases with Ju Liu
February 14, 2022 13:00 - 1 hour - 62.3 MBJu Liu (twitter) (github) Elm at NoRedInk Ju's blog noredink-ui is NoRedInk's internal UI kit (live demo page) avh4/elm-program-test elm-sortable-table API Implementing Elm Podcast season 1 cultureamp/react-elm-components (React library for embedding Elm as a Web Component) elm-community/js-integration-examples NoRedInk is hiring Elm and Haskell devs Ju Liu's blog
049: Optimizing Performance with Robin Hansen
January 31, 2022 13:00 - 1 hour - 67.6 MBRobin Hansen (twitter) (github) elm-optimize-level-2 Html.Lazy API Outperforming Imperative with Pure Functional Languages - talk about Roc by Richard Feldman Tail call optimization Successes, and failures, in optimizing Elm’s runtime performance - Robin's blog post series on his elm-optimize-level-2 optimizations WASM Maybe you don't need Rust and WASM to speed up your JS Brian Carroll's blog posts on an Elm WASM prototype Robin's Stabel language - a stack oriented language that c...
048: If It Compiles It Works
January 17, 2022 13:00 - 1 hour - 55.9 MBDillon's blog posts If It Compiles It Works and When It Compiles But Doesn't Work Wiring Refactoring Running code paths to check it works vs checking assumptions at the gate Dillon's talk Types Without Borders Shotgun surgery - Parse, Don't Validate episode Order independent You can trust your tests Keeping what you depend on to a minimum helps make things trustworthy Semantics can make it harder to predict (like parser) Json.Decode.maybe is almost never what you intend Scaling E...
047: What's Working for Elm
January 03, 2022 13:00 - 1 hour - 69.5 MBWoody Zuill on Turn Up the Good Mob Programming Where Could We Turn Up the Good? Pure FP Elm 0.19 removing side effects Purity is what makes elm-review interesting Jeroen's post Safe dead code removal in a pure functional language No runtime exceptions Useful Error Messages Useful error messages Evan's 2017 Deconstructconf talk Evan Czaplicki On Storytelling Evan's talk What is Success? Having a single language flavor Isomorphic code Meta frameworks (elm-pages, Lamdera, elm-sp...