Dillon Kearns, Jeroen Engels
Elm Radio
Tune in to the tools and techniques in the Elm ecosystem.
Author
Dillon Kearns, Jeroen Engels
Category
Podcast website
Latest episode
Dec 4, 2023
Where to listen?
Podcasts in the app Replaio Radio Coming soonPodcasts are coming to the app soon. Install now and be the first to see a whole new take on podcasts
Episodes
046: 2021 Holiday Special! 20.12.2021 1:09:42
Our special guests Ryan Haskell-Glatz ( twitter ) ( github ) Brian Hicks ( twitter ) ( github ) Robin Heggelund Hansen ( twitter ) ( github )
045: How We Learn 06.12.2021 1:13:03
Make impossible states impossible Teaching elm episode Dillon's first Elm project, Mobster pair/mob programming timer Ideas for Effective Learning Have a playground to try out ideas Try a new tool or technique with a familiar problem or exercise Small scale exercises and real world projects Small scale exercises are helpful for quickly developing a skill Feedback loops Tiny steps shorten the feedb...
044: elm-webgl 22.11.2021 1:03:53
Guest: Andrey Kuzmin ( github ) ( twitter ) elm-explorations/webgl GLSL syntax Two shaders: vertex shader and fragment shader Uniforms are declarative bindings to Elm values. Type safe mapping Simple cube example elm-explorations/linear-algebra/latest Projection matrices elm-webgl-lessons ianmackenzie/elm-3d-scene/latest/ Luca's listing of 3d Elm examples and resources elm-3d-scene examples elm-cs...
043: Teaching Elm with Richard Feldman 08.11.2021 1:20:03
Richard Feldman ( Twitter ) ( GitHub ) Richard's Elm book Elm in Action Richard's Frontend Masters courses Richard's talk Teaching Elm to Beginners Find motivation Mloc.js conference (by Prezi) Pairing as a way to teach Elm Intro to Elm Frontend Masters workshop exercises are open source South Park therefore/but storytelling technique "I like teaching things the wrong way and then showing what's w...
042: Comparing TypeScript and Elm's Type Systems 25.10.2021 1:08:57
TypeScript and Elm have different goals Soundness is not a goal of the TypeScript type system TypeScript Design Goals (and non-goals) TypeScript's any type Nominal vs structural typing TypeScript's any vs. Elm's Debug.todo TypeScript's any essentially "turns off" type checking in areas that any passes through. In Elm: You can get a type that could be anything with Debug.todo , but you can't build...
041: elm-markdown 11.10.2021 1:07:25
dillonkearns/elm-markdown Markdown was built to be friendly to humans more than parsers. Example of a markdown quirk for human-friendliness: numbered lists starting with 1 interrupt paragrpahs, starting with other numbers don't Babelmark helps compare output of different markdown implementations Some parts of the markdown spec are ambiguous John Gruber created markdown (Daring Fireball) Jeff Atwoo...
040: Phantom Builder Pattern 27.09.2021 1:05:51
Phantom types (happens at compile time, not runtime) Helps avoid things like adding centimeters and inches ianmackenzie/elm-units Joël Quenneville's phantom types talk from Elm in the Spring A Number by Any Other Name Extensible records Builder pattern Jeroen's Hierarchy of Constraints elm-graphql SelectionSet scope type variable Builder Pattern episode Brian Hicks' builder pattern talk Robot Butt...
039: elm-charts 13.09.2021 56:36
Tereza Sokol ( GitHub ) ( Twitter ) terezka/elm-charts elm-charts.org Original APIs: line-charts and elm-plot Tereza's Elm Europe talk elm-plot: the big picture Tereza's talk If Coco Chanel Reviewed Elm Edward Tufte New version tries to be less prescriptive Extensible Web Manifesto gampleman/elm-visualization elm-vega GHCJS (mentioned in Elm Town episode 6 )
038: Lamdera 30.08.2021 1:31:14
Mario Rogic ( GitHub ) ( Twitter ) Lamdera Lamdera 1.0 release Elm Europe conference talk introducing Lamdera Elm Europe conference talk about Lamdera's Evergreen Lamdera is about removing non-essential complexity - 6 concepts Stuff that happens for the client (in the browser) Stuff that happens in the server (like scheduled job) Data from client to backend Data from backend to client Frontend kno...
037: Performance in Elm 16.08.2021 1:08:16
elm-review-performance Tail call optimizations Jeroen's blog post on Tail-call optimization in Elm Evan Czaplicki's chapter on Tail-Call Optimization and how to write optimized code Lighthouse Elm Radio episode Ju Liu's Performant Elm blog post series Avoid memoized state when possible to avoid stale data Html. Lazy Elm's html lazy only works when the function and args have the same reference as b...
036: elm-pages 2.0 02.08.2021 1:16:01
Introducing elm-pages v2! Pre-rendered pages elm-pages has a build step Parse, Don't validate Frontmatter DataSource. File DataSource.fail DataSource. Glob Distill API DataSource.distillCodec elm-graphql DataSource example from incrementalelm.com The 2.0 docs are at elm-pages.com #elm-pages channel on the Elm Slack Incremental Elm source code Elm Radio site source code
035: elm-spa v6 19.07.2021 1:14:11
Ryan Haskell-Glatz ( Twitter ) ( GitHub ) elm-spa V5 Docs elm-spa v5 episode Key new features in v6 Protected pages Provide/redirect protected custom type Eject workflow Vuepress elm-program-test docs site Can Eject not found page Eject workflow stops generating files when they're ejected File-based routing in elm-spa Inspired by Nuxt Page builder API (like browser sandbox) No more int or string i...
034: API Design Lessons 05.07.2021 1:08:26
Idiomatic Elm package guide dillonkearns/elm-package-starter Lessons Avoid unexpected or silent behavior Give context/feedback when things go wrong so the user knows their change was registered, to enhance trust Good errors aren't just for beginners - Curb Cut Effect Sandi metz - code has a tendency to be duplicated - be a good role model - we're influenced by precedence Matt Griffith - API design...
033: Accessibility in Elm 21.06.2021 1:05:32
Tessa Kelly ( GitHub ) ( Twitter ) The 4 Principles of Accessibility prefers-reduced-motion media query Guide to using Mac's built-in VoiceOver screenreader Ace Accessibility tools Skip Links Navigating headings with a screenreader (see keyboard shortcuts for the VoiceOver rotor ) WCAG checklists VPAT documents ARIA attributes The Accessibility Tree Google's explanation of The Accessibility Tree A...
032: Elm's Universal Pattern 07.06.2021 1:14:32
Joël Quenneville ( Twitter ) Joël's blog post Elm's Universal Pattern map2 Maybe.map2 Metaphors Some common metaphors for Elm's Universal Pattern (Applicative Pattern). Mapping Combining Lifting Wrapping and unwrapping boxes Blog post on Two ways of looking at map functions Examples Random generators Apply mapping functions to vanilla value functions to keep things clean Tips Separate branching co...
031: Elm Code Generation 24.05.2021 1:07:18
What's the source of truth? Teach the Elm compiler about external things like schemas elm-graphql dillonkearns/elm-graphql Types Without Borders Macros in other languages C macros compared to Lisp macros ReScript ppx macros Vanilla code generation can be inspected and debugged like plain handwritten code Gitignore gen code so you know you didn't forget to generate it on the build server Watchers f...
030: Debugging in Elm 10.05.2021 59:01
Rubber ducking Lay out your assumptions explicitly Veritasium video The Most Common Cognitive Bias Elm Debugging techniques Debug.todo Frame then fill in Annotation let bindings Using nonsense names as a step Elm review rule to check for nonsense name Hardcoded values vs debug.todo Todos don't allow you to get feedback by running your code TDD Fake it till you make it Simplest thing that could pos...
029: Writing an elm-review Rule 26.04.2021 1:14:05
dillonkearns/elm-review-html-to-elm (elm-review version of html-to-elm.com ) Rule naming guidelines docs Elm review cli new rule command stil4m/elm-syntax Elm. Syntax. Range elm-review ignoreErrorsForFiles Review context withFinalModuleEvaluation elm-review 's context is like Model , elm-syntax Node is like a Msg , Review Error s are Cmd s, visitors are like update elm-review 's new configuration...
028: GitHub Actions 12.04.2021 1:07:06
Continuous Integration (CI) CD ( Continuous Delivery , Continuous Deployment ) Mob programming elm-program-test episode Cypress testing framework GH actions on events ( schedule , workflow_dispatch , pull_request , etc.) elm-review new-package npm-run-all Can run npm-run-all test:* , but don't know the order it will run in git hooks Dependabot Dillon's blog post about using dependabot for Elm depe...
027: elm-tailwind-modules 29.03.2021 1:19:39
Our guest: Philipp Krüger, aka matheus23 ( github ) ( twitter ) matheus23/elm-tailwind-modules elm-reduce (Philipp's Bachelor's thesis) TailwindCSS The Tailwind config file elm-ui Sass/Scss CSS inheritance Cohesion and coupling - don't separate things that need to be understood together monty5811/postcss-elm-tailwind paved the path for Philipp's library PurgeCSS Philipp's library is a fork of just...
026: Funding Open Source with Evan Czaplicki 15.03.2021 1:04:42
#PLTalk programming language panels #PLTalk panel discussion on funding Elm compiler roadmap document elm-language-server elm-format 's abstract syntax tree output is in the brainstorming phase elm-typescript-interop (the old approach) elm-ts-interop Elm Radio episode
025: elm-ts-interop 01.03.2021 1:14:46
elm-ts-interop Now-deprecated original library - elm-typescript-interop The Importance of Ports - Elm Conf talk by Murphy Randle Evan's Vision for Data Interchange document recommends against implicit serialization. The deprecated elm-typescript-interop relied on Elm's automatic JSON serialization flags/ports. elm-ts-interop passes Json. Decode. Value 's which is what the guide recommends . Blog p...
024: elm-program-test 15.02.2021 1:11:42
Aaron VonderHaar ( github ) ( twitter ) elm-format episode elm-program-test elm-test elm-test episode BDD As It's Meant To Be Done video by Matt Wynne BDD (Behavior-Driven Development) Gherkin syntax Outside in vs. inside out testing ensure vs. expect functions The Effect Pattern Http simulation example from examples folder An elm-program-test example using a generalized Effect type elm-program-te...
023: elm-format 01.02.2021 1:11:41
elm-format prettier gofmt , the built-in Go formatting tool Some discussion of IntelliJ trailing whitespace issues elm-format editor integrations table elm-tooling elm-tooling Elm Radio episode Jeroen's elm-format tips tweet NoExposingEverything rule Discussion about single-line conditionals The original Elm style guide Join lines ( J in vim, also available with intellij keybindings )
022: elm-tooling with Simon Lydell 18.01.2021 1:05:36
Simon Lydell ( twitter ) ( github ) elm-tooling-cli elm-json Install elm-tooling into your npm dev dependencies npx elm-publish-action NPM's package.json scripts section NPM postinstall scripts Richard's recommendation to use npm config set ignore-scripts true , which can cause issues because it also skips the postinstall from your package.json elm-tooling-cli docs website Elm tooling in ci GitHub...
Similar podcasts
Replaio is not a podcast publisher; show names, artwork and audio belong to their authors and are distributed through public RSS feeds.