Elm Radio artwork

Elm Radio

97 episodes - English - Latest episode: 5 months ago -

Tune in to the tools and techniques in the Elm ecosystem.

Technology elm web-development functional-programming programming jamstack
Homepage Google Podcasts Overcast Castro Pocket Casts RSS feed

Episodes

096: Optimizing Bundle Size

December 04, 2023 13:00 - 1 hour - 66.5 MB

The 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 MB

Wolfgang 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 MB

Andrew 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 MB

Jakub 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 MB

Wolfgang 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 MB

Katja 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 MB

Ryan 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 MB

Elm 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 MB

elm-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 MB

Mario 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 MB

elm-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 MB

Ruby 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 MB

Evan'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 MB

elm-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 MB

Flavio 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 MB

dillonkearns/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 MB

ChatGPT 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 MB

elm-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 MB

Philipp 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 MB

Simon 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 MB

Lindsay 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 MB

elm-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 MB

Georges 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 MB

Bobby 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 MB

Guests 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 MB

Practice 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 MB

vendrinc/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 MB

Is 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 MB

Getting 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 MB

Aaron 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 MB

Matthew 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 MB

Simon 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 MB

Sponsor: 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 MB

Jeroen'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 MB

Martin 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 MB

Parse, 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 MB

Error 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 MB

Primitive 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 MB

Martin 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 MB

Martin 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 MB

Georges 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 MB

Alex 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 MB

Incremental 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 MB

Oxbow 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 MB

Joë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 MB

Solving 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 MB

Ju 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 MB

Robin 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 MB

Dillon'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 MB

Woody 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...

Twitter Mentions

@evancz 4 Episodes
@realmario 4 Episodes
@mech_elephant 3 Episodes
@joelquen 3 Episodes
@rhg_dev 3 Episodes
@matheusdev23 2 Episodes
@jfmengels 2 Episodes
@t_kelly9 2 Episodes
@simonlydell 2 Episodes
@wolfadex 2 Episodes
@robheghan 2 Episodes
@janiczek 2 Episodes
@rtfeldman 2 Episodes
@georgesboris 2 Episodes
@unsoundscapes 1 Episode
@avh4 1 Episode
@brianhicks 1 Episode
@arkh4m 1 Episode
@aaronwhite 1 Episode
@elmradiopodcast 1 Episode