Elm Radio

Elm Radio

By Dillon Kearns, Jeroen EngelsTechnology
Download on the App Store

Elm Radio episodes

  • 066: elm-codegen with Matthew Griffith
    • 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
    1 hr 22 min
  • 065: elm-watch with Simon Lydell
    • 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
    1 hr 30 min
  • 064: Projects We Wish We Had Time For

    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: sparksp/elm-review-imports either new feature, or separate project to give suggestions to make all inconsistent imports in a project consistent
    • Idea: elm-review code actions
    • Idea: elm-review collection mechanism to gather data from an AST
    • Pairwise testing (or all pairs)
    • Idea: pairwise permutation API that minimizes the number of permutations to go through to get complete coverage
    • Idea: mutation testing tool for Elm (is Phillip's tool relevant here?)
    • Idea: generated API for elm-graphql but with factory-style API for mocking out data that is compliant to the graph schema, for use with things like elm-program-test
    • Idea: Browser.application wrapper that provides some common initial flags like start time, initial window dimensions etc
    • Idea: HTTP Error type to get bad status payload that can be shared between libraries to reuse the same type (similar to the HttpError type defined in elm-graphql)
    • Aaron's community-standard elm-color package
    • Idea: tool to automatically vendor or un-vendor Elm packages
    • Idea: elm-format in Elm
    • Idea: elm diff, but it gives you more detailed information about code changes even if they don't change the API
    • Idea: Phantom Builder analyzer that generates a state diagram from Elm code
    • Idea: suggest types based on what's possible in your current editor context
    • Idea: type inference and value inference in elm-review
    • elm-http-fusion
    • Idea: use a collection of HTTP requests to an endpoint in elm-http-fusion to gather better type incormation about an API
    • Idea: make tools like elm-http-fusion embeddable in the elm-pages dev server so you can interactively fix decoder errors, etc.
    • Idea: elm-pages dev server code actions from the UI, like scaffolding new routes
    • elm-codegen
    • Idea: use elm-codegen for elm-pages scaffolding for user-customizable templates
    • Official Elm blog post The Syntax Cliff
    • Idea: show ANSI color code error messages embedded in blog posts
    • Talk about the Hedy language: What every programmer should know about cognition by Felienne Hermans
    • Elm Guide translated into French
    • Idea: translatable error messages and language keywords for Elm
    • Idea: elm-css tool to make inline styles into static CSS files and replace the styles with a reference to the generated class. Goal: reduce bundle size and performance overhead
    • Idea: codemod tool to post-process Elm code using elm-review fixes in a hidden temp directory
    • Idea: Elm step debugger
    • Idea: elm/parser debugger to see the state machine of what has been consumed
    • Idea: Elm debugger improvements like filtering Msg types, customizable inspecting for certain types
    • Idea: inspectable Cmds in the debugger, or similar idea for debugging elm-pages DataSources to see why a failure happened and what the breadcrumbs are
    • Idea: React ink, but for Elm
    • awesome-elm-sponsorship repo
    1 hr 22 min
  • 063: The Root Cause of False Positives
    • 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)
    1 hr 11 min
  • 062: elm-test v2 with Martin Janiczek
    • 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 doesn't do shrinking so best to avoid that escape hatch and instead implement an equivalent fuzzer
    • Scott Wlaschin's post Choosing properties for property-based testing
    • Discourse post on call for testing help and how to install the beta release
    • Martin's video series on designing the new fuzz testing API
    • #testing channel on the Elm Slack
    • Hypothesis library
    • Hypothesis project's blog
    • A paper about the Hypothesis reduction approach: Test-Case Reduction via Test-Case Generation: Insights From the Hypothesis Reducer
    1 hr 24 min
  • 060: Building Trustworthy Tools
    • 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
    • Avoid boy who cried wolf (becoming blind to noise from errors or warnings or other feedback)
    • Halo Effect
    1 hr 4 min
  • 058: Elm Store Pattern
    • 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
    • Wrap early, unwrap late
    • Derive from source of truth instead of storing derived data
    1 hr 19 min
  • 057: State of Elm 2022
    • 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)
    1 hr 21 min

About Elm Radio

From the publisher's feed

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