PLAY PODCASTS
Elm Radio

Elm Radio

96 episodes — Page 1 of 2

Ep 96096: Optimizing Bundle Size

The cost of JavaScript in 2019 (discusses the cost of JSON parsing strings vs. JS JSON literals in this section)img tag lazy attributedillonkearns/elm-bcp47-language-tagjfmengels/elm-review-unusedMario Rogic's gist on the reasons code splitting can't be done right now with Elm's compiler internalsBreaking up with SVG-in-JS blog postHTML use tag lets you do SVG sprite sheetsElm Radio Code Generation episodematheus23/elmjs-inspectProjects We Wish We Had Time For episodeWhy We're Breaking Up with CSS-in-JSdillonkearns/elm-css-transpiler-demoSimon Lydell's discourse post What I’ve learned about minifying Elm code

Dec 4, 20231h 12m

Ep 95095: elm-open-api with Wolfgang Schuster

Wolfgang Schuster (github) (twitter)elm-open-api (NPM package) (Elm package)Akita (now part of postman)JSON Schemadillonkearns/elm-formWolfgang's Effortless SDKs blog postGraphQL Custom Scalar Codecs feature in dillonkearns/elm-graphqlelm-units packageOpen API Generatorswagger-elmelm-open-api Real World example

Nov 20, 20231h 18m

Ep 94094: elm-concurrent-task with Andrew MacMurray

Andrew MacMurray (github) (site)elm-concurrent-tasklobanov/elm-taskportelm-pages v3's BackendTask APIelm-review-simplify0ui/elm-task-parallel packageelm/core Task APIlamdera-program-testelm-pkg-js - A standard for shipping simple JS with Elm Packageselm-concurrent-task pipeline worker example

Nov 6, 20231h 2m

Ep 93093: elm-visualization with Jakub Hampl

Jakub Hampl (github) (site)elm-visualizationelm-visualization intro guideelm-visualization's Scale APID3 selectionselm-vega and elm-vega-liteelm-visualization's example gallerygampleman/elm-example-publisherWGS84 specavh4/elm-colorelm-community/typed-svgfolkertdev/one-true-path-experimentelm-visualization 2.4.0 release notesWeather radial examplegampleman/elm-rosetree

Oct 23, 20231h 12m

Ep 92092: Elm News with Wolfgang Schuster

Wolfgang Schuster (github) (twitter)Elm WeeklyElm CampsegakcapElm Online MeetupElmcraftElm LandElm at a Billion Dollar Company episodeElm 2022 Year in Review postThe Elm DiscourseCasper Schipper's audio/visual art pieceEmail elmweekly.wolfgang <at> gmail.com to suggest links for the newsletter

Oct 9, 20231h 16m

Ep 91091: Code Reading Club with Katja Mordaunt

Katja Mordaunt (github) (website)Code Reading ClubCode Reading Club's GitHubFelienne HermansThe Inner Game of Tennis Felienne's book The Programmer’s BrainScaling Elm Apps Elm Radio episode

Sep 25, 20231h 17m

Ep 90090: elm-land with Ryan Haskell-Glatz

Ryan Haskell-Glatz (twitter) (youtube) (github) (sponsor)elm-landElm Radio elm-spa episodeEvan'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 LIVERyan's experimental NPM tool css-in-elmelm-land guide's section on componentsElm Radio elm-watch episodeBats-core: Bash Automated Testing SystemJoin the elm-land DiscordSponsor Ryan on GitHub

Sep 11, 20231h 8m

Ep 89089: The Human Side of Open Source

Elm Radio episode Funding Open Source with Evan CzaplickiNonviolent CommunicationDavid Marquet TED Talk How Great Leaders Serve OthersElm Radio episode Developer Productivity

Aug 28, 20231h 12m

Ep 88088: Avoiding Unused Code

elm-review-unusedSafe dead code removal in a pure functional languageElm Town 60 with Wolfgang Schuster - Productivity and the culture of moving a little bit slower

Aug 14, 20231h 6m

Ep 87087: Evergreen Migrations with Mario Rogic

Mario Rogic (GitHub) (Twitter)LamderaMario's Elm Europe talk Evergreen ElmLamdera 1.1.0 release notes (automatic migration generator)elm-pkg-js spec

Jul 31, 20231h 38m

Ep 86086: elm-pages v3

elm-pages scripts episodeOptimizedDecoder in elm-pages v2Netlify's DPR (Distributed Persistent Rendering)elm-pages v3 Express community adapterelm-pages v3 Session APIWriting Great Docs episodedillonkearns/elm-form episodeelm-pages v3 announcement post

Jul 17, 20231h 22m

Ep 85085: Why We Care About Elm

Ruby Enumerable moduleRuby Shovel OperatorJeroen's Elmcraft post ESLint Equivalents in ElmLamderaelm-uielm-tailwind-moduleselm-formatlamdera/program-test

Jul 3, 20231h 8m

Ep 84084: Writing Great Docs

Evan's Elm philosophy tweetelm-review docselm-doc-previewelm-review-documentationelm-verify-examplessparksp/elm-review-forbidden-wordselm-package-starterIdiomatic Elm Package Guideelm-bookElm Radio episode How (And When) to Publish a PackageDocs for Developers book

Jun 19, 20231h 40m

Ep 83083: elm-review Data Extractors

elm-review Data Extractorselm-codegenelm-pages Scriptsjfmengels/elm-review-licenseNoDeprecated Ruleelm-review preventExtract functionBrian Hicks' tree-grepperelm-review ModuleNameLookupTablejfmengels/elm-review-cognitive-complexityelm-coverageelmi-to-jsonReview.Test.expectDataExtractJeroen's blog post Gaining insight into your codebase with elm-review

May 22, 20231h 13m

Ep 82082: Elm and Haskell with Flavio Corpa

Flavio Corpa (github)Flavio's blog post series Giving Names to StuffRunning Out of Maps blog postElm Radio Category Theory episodeFunctorsApplicativeMonadQuick check haskellcherry-coreNRI preludeScaling elm apps episodelexi-lambda comment about laziness in HaskellEffectful Haskell libraryundefined in HaskellStrange Loop conference talk Point-Free or Die: Tacit Programming in Haskell and BeyondElm 0.18 functions curry, uncurry, and flipElm in ActionHaskell Programming From First Principles book

May 8, 20231h 26m

Ep 81081: elm-form

dillonkearns/elm-formExploring a New Form API Design episode (discussion of some ideas that became dillonkearns/elm-form)Ellie example of elm-formMeetdown 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-formelm-app-urldillonkearns/elm-package-starter

Apr 24, 20231h 4m

Ep 80080: Elm and AI

ChatGPTGitHub Co-PilotTweet showing intermediary questions prompt engineering techniqueelm-gql episodeDillon's prompt engineering type puzzle examplesDecode mapping solution (correct on first try)Markdown solution with 2 corrections from compiler feedbackDillon's Frame Then Fill In blog post describes a similar method to the GPT prompt

Apr 11, 20231h 23m

Ep 79079: Scaffolding Elm Code

elm-codegen episodeElm Code Generation episodeScaffold API in elm-pages v3 betaExploring a New Form API Design episodeDHH Building a Rails blog in 15 minuteselm-pages Scripts episodeExample of elm-pages AddRoute scriptelm-pairelm-review-html-to-elmalexkorban/elm-review-json-to-elm

Mar 28, 20231h 8m

Ep 78078: Color parameters in elm-tailwind-modules with Philipp Krüger

Philipp Krüger, aka matheus23 (github) (twitter)matheus23/elm-tailwind-modulesmatheus23/elm-default-tailwind-modulesTailwindCSSIntroduction to elm-tailwind-modules Elm Radio episodeTailwind UIhtml-to-elm.comelm-review-html-to-elm packagematheus23/elm-tailwind-modules-base

Mar 13, 20231h 8m

Ep 77077: elm-app-url with Simon Lydell

Simon Lydell (github)lydell/elm-app-urlShort YouTube walkthrough Introducing elm-app-urlJohn Kelly's blog post explaining the URL parser types understanding the design of elm/urlRichard Feldman's conference talk explaining early elm-css syntax design ideas and changes over time The Design Evolution of elm-css and elm-testURLSearchParams in JavaScriptWHATWG URL StandardArlo Belshee post on WET (Write Explicit Tests)

Feb 27, 20231h 7m

Ep 76076: Elm and Vite

Lindsay Wardell (github)ViteESM (native JS module import statement)esbuildRollupVitestTurbopackVite SSR mode (for framework authors)vite-plugin-elmDocs on configuring ViteLindsay's vite-elm-templateWeb Workers APILindsay's blog post Utilizing Elm in a Web Workerelm-watch Elm Radio episodeArticle about finding Google Fonts embeds to be in violation of GDPRGoogle fonts download plugin setup in the elm-pages docs sitevite-nodeawesome-vite repoLindsay's ViteConf 2022 talk Functional Programming in Vite with ElmViteConf 2022 talks

Feb 13, 202357 min

Ep 75075: elm-pages scripts

elm-pages v3 (still in pre-release)elm-pages v2 DataSources are called BackendTasks in v3Feels similar to elm/core Task (andThen, map, mapError)Script.logMinimal setup repo for running scriptswolfadex/elm-inkBackendTask.Custommdgriffith/elm-codegenFatalErrorBackendTask.allowFatalZoddillonkearns/elm-cli-options-parser (Elm package for parsing command-line flags and showing help text)Other Elm tools for running scriptselm-posixelm-scriptelm-pages V3 starter (still pre-release)elm-pages V3 beta package#elm-pages Slack channel

Jan 30, 20231h 14m

Ep 74074: Plug and Play Design Systems with Georges Boris

Georges Boris (twitter) (github) (Uncover)elm-widgetsTwitter Bootstrapelm-themeelm-theme Tailwind pluginelm-sortable-table philosophy in readmeConfidenceman02/elm-select/latest/tesk9/elm-accessible-htmltesk9/paletteelm-theme showcase site using Elm Bookelm-theme theme generatorWhy Breaking Up with CSS-in-JS blog postLoading widgetsModal widgetsdetails HTML elementdialog HTML elementTooltipsCSS :has() pseudo-classJS tool for theming Theme UI

Jan 16, 20231h 14m

Ep 73073: Security in Elm

Bobby Tables XKCD comicSQL injectionsDDoS attacksXSS (Cross-Site Scripting) attack prevention cheatsheetJeroen's blog post Fixing vulnerabilities in Elm's virtual DOMHTTP cross origin cookie policy optionsRichard's Oslo Elm Day keynote where he discusses rolling your own tools for security reasonslukewestby/elm-http-builderOutput Encoding articleElm's Virtual DOM implementationFeross' CS 253 Stanford Web Security course on YouTubeWeb Security course notes and slidesFeross' blog post What's Really Going On Inside Your node_modules Folder?

Jan 2, 20231h 1m

Ep 72072: 2022 Holiday Special

GuestsMario Rogic (twitter) (github)Matthew Griffith (twitter) (github)LinksElmcraft.orgJeroen's Elmcraft article ESLint equivalents in ElmMartin Janiczek's Elmcraft article on Let PolymorphismElmcraft project on GitHubElmcraft discordelm-codegenelm-gqlMatt's Strange Loop talk CodeGen with Types, for Humans, by HumansTail recursion modulo cons elm optimize level 2 prelm-review extractors featureelm-pages-v3-betaelm-pages Script (v3 feature)OpenAI whisper project on GitHubelm-watchelm-bookelm-widgetsL*a*b color spaceelm.develm-watch episodeelm-tailwind-modules color parameterization PR

Dec 19, 20221h 16m

Ep 71071: Deliberate Practice

Practice makes permanentFlow book by Mihaly CsikszentmihalyiKey Principles of Deliberate PracticeIsolationAppropriate level of challengeIntrospectionCode katasFuzz buzzTennis kataRoman Numerals KataGilded roseConstraint gamesTDD is a core tenant of katasExercismMartin Janiczek fuzz testing (and elm-test v2) episodeAdvent of CodeDillon's elm-katas starter repoElm Gilded Rose starter repoTCR (test commit revert)Dillon and Corey Haines pairing using TCR on the Gilded Rose kata in ElmDillon's example TCR script for snapshot testing workflow

Dec 5, 20221h 15m

Ep 70070: elm-gql with Matthew Griffith

vendrinc/elm-gqldillonkearns/elm-graphqlelm-codegenThe Insomnia API client has a graphql toolGraphQL variablesWrap early, unwrap lateGraphQL Union TypesGraphQL Enum typesDillon's Types Without Borders elm-conf talkGraphQL fragmentsRichard Feldman's talk Immutable Relational DataElm Store Pattern episoderemotedata packageElm Radio elm-graphql episodeVendr is hiringDillon's Types Without Borders Isn't Enough blog postelm-ts-interop episodeGraphQL approach for sending allow listed hashed query to serverGraphQL field aliasesMatthew's Strange Loop talk CodeGen with Types, for Humans, by Humansharmboschloo/graphql-to-elmDeprecated jahewson/elm-graphql toolelm-gql repo guideelm-gql GitHub API example repo

Nov 21, 20221h 19m

Ep 69069: Types vs. Tests

Is TDD Dead? (TDD is Dead and associated video discussions with TDD experts)Roc-lang's tagged unionsXP (Extreme Programming)80-20 rule (i.e. Pareto Principle)Amanda Laucher's ScalaDays talk Types vs TestsKent Beck's book TDD by Exampledtwrks/elm-bookMartin Janiczek's Elm Online talk on Storybook-driven developmentTalk with demo of program synthesisRelentless Tiny HabitsCode Katas

Nov 7, 20221h 9m

Ep 68068: Elm and ADD

Getting Things Done methodologyElm Radio Developer Productivity episodeElm Radio Parse, Don't Validate episodeScaling Elm apps Elm Radio episodeRuby's method_missingRuby's Enumerble API methodsJoël Quenneville's recommendation to write functions at a single level of abstractionelm-pages v3 API makes HttpOnly cookies opt-out instead of opt-inLlewellyn Falco and Woody Zuill's video Practical Refactoring ("Understand the code so we can change it" vs. "change the code so we can understand it")Elm Radio Incremental Steps episodeElm Radio Opaque Types episode

Oct 24, 20221h 6m

Ep 67067: Elm at a Billion Dollar Company with Aaron White

Aaron White (github) (twitter)Vendr (github)Vendr, Software Procurement Startup, Raises $150 Million at Unicorn Valuation - BloombergMake Impossible States ImpossibleLuke Westby's talk on Web ComponentsRichard Feldman's 2016 meetup talk on Web Componentselm-spa-exampleelm-spaelm-spa-realworld exampleEvan's elm-sortable-table repoActor framework or taco or Msg translator (nested TEA) didn't work out wellelm-codegenPlop templating toolStorybookEvan's vision for data interchangeVendr is hiring

Oct 10, 20221h 24m

Ep 66066: elm-codegen with Matthew Griffith

Matthew Griffith (twitter) (github)elm-codegenelm-syntaxelm-syntax-dslelm-uiElm.Type.Type from elm/project-metadata-utils represents all possible Elm typeselm-codegen announcement post on DiscourseGuides from the elm-codegen repo

Sep 26, 20221h 21m

Ep 65065: elm-watch with Simon Lydell

Simon Lydell (twitter) (github)elm-watchParcel build toolBuilding Trustworthy Tools Elm Radio episodeViteklazuka/elm-hotelm-tooling episodeelm-watch run-pty example folderSimon's run-pty tool for running commands in parallel

Sep 12, 20221h 29m

Ep 64064: Projects We Wish We Had Time For

Sponsor: CareRevCareRev is looking for Senior Frontend Elm engineers (job listing).elm-review-simplifyElm Radio Root Cause of False Positives episodeDillon's pairing session using snapshot testing prototype with Corey Haineselm-snapshot-test prototype repoApproval testingelm-coverageelm-instrumentLlewellyn Falco Gilded Rose kata videoIdea: intellij integration for elm-coverageIdea: code actions for safe refactoringsIdea: elm-review integration in intellijIdea: sparksp/elm-review-imports either new feature, or separate project to give suggestions to make all inconsistent imports in a project consistentIdea: elm-review code actionsIdea: elm-review collection mechanism to gather data from an ASTPairwise testing (or all pairs)Idea: pairwise permutation API that minimizes the number of permutations to go through to get complete coverageIdea: 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-testIdea: Browser.application wrapper that provides some common initial flags like start time, initial window dimensions etcIdea: 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 packageIdea: tool to automatically vendor or un-vendor Elm packagesIdea: elm-format in ElmIdea: elm diff, but it gives you more detailed information about code changes even if they don't change the APIIdea: Phantom Builder analyzer that generates a state diagram from Elm codeIdea: suggest types based on what's possible in your current editor contextIdea: type inference and value inference in elm-reviewelm-http-fusionIdea: use a collection of HTTP requests to an endpoint in elm-http-fusion to gather better type incormation about an APIIdea: 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 routeselm-codegenIdea: use elm-codegen for elm-pages scaffolding for user-customizable templatesOfficial Elm blog post The Syntax CliffIdea: show ANSI color code error messages embedded in blog postsTalk about the Hedy language: What every programmer should know about cognition by Felienne HermansElm Guide translated into FrenchIdea: translatable error messages and language keywords for ElmIdea: 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 overheadIdea: codemod tool to post-process Elm code using elm-review fixes in a hidden temp directoryIdea: Elm step debuggerIdea: elm/parser debugger to see the state machine of what has been consumedIdea: Elm debugger improvements like filtering Msg types, customizable inspecting for certain typesIdea: inspectable Cmds in the debugger, or similar idea for debugging elm-pages DataSources to see why a failure happened and what the breadcrumbs areIdea: React ink, but for Elmawesome-elm-sponsorship repo

Aug 29, 20221h 21m

Ep 63063: The Root Cause of False Positives

Jeroen's tweet on the root cause of false positivesEpistemologyIsabelle and TLA+ (proof systems)Precautionary principlearray-callback-return ESLint ruleelm-review's ModuleNameLookupTableJeroen's Safe unsafe operations in Elm blog postJeroen's Lambda Days 2022 talk (video not yet published)

Aug 15, 20221h 10m

Ep 62062: elm-test v2 with Martin Janiczek

Martin Janiczek (github) (twitter) (youtube)elm-test episodeFuzzing is also known as Property-Based TestingParameterized testsMartin's pure Elm text editor includes some fuzz testsMartin's pull request for the elm-test v2 changesIntegrated shrinking vs the value-based (AKA type-based) approachFuzz.andThen and Fuzz.filter (existed in 0.18 but were removed because they didn't shrink well)elm-test v2 upgrade guide and change notesPassing in random generators in elm-test v2 doesn't do shrinking so best to avoid that escape hatch and instead implement an equivalent fuzzerScott Wlaschin's post Choosing properties for property-based testingDiscourse post on call for testing help and how to install the beta releaseMartin's video series on designing the new fuzz testing API#testing channel on the Elm SlackHypothesis libraryHypothesis project's blogA paper about the Hypothesis reduction approach: Test-Case Reduction via Test-Case Generation: Insights From the Hypothesis Reducer

Aug 1, 20221h 23m

Ep 61061: Exploring a New Form API Design

Parse, Don't Validateetaque/elm-formCodecs episodeSome similarities in the design for how you build up Custom Type codecs with elm-codec

Jul 18, 20221h 12m

Ep 60060: Building Trustworthy Tools

Error messages should give three pieces of infoThe problemWhy it's a problemHow to go forwardNeeding to do magic incantations to get things into a good state adds cognitive load and makes debugging harderMake tools more predictableClear mental model (avoid inconsistencies and leaky abstractions)Doing an operation through different means should consistently arrive at the same resultGive contextAvoid caveatsTweet about layering platforms properlyExtensible web manifestoAvoid boy who cried wolf (becoming blind to noise from errors or warnings or other feedback)Halo Effect

Jul 4, 20221h 3m

Ep 59059: Wrap Early, Unwrap Late

Primitive Obsession episodeParse, Don't Validate episodeDillon's Entry Gatekeepers and Exit Gatekeepers blog postsDillon's talk on semantic types

Jun 20, 202253 min

Ep 58058: Elm Store Pattern

Martin Janiczek (github) (twitter) (youtube)Martin's Store Pattern talkStore Pattern example GitHub repoGizra fetch pattern blog post elm-fetch, and Easier HTTP Requests to Reason withGizra elm-fetch packageRemoteData packageRemoteData blog post How Elm Slays a UI Antipatternelm-program-test is useful for integration testing data loadingelm-suspense proof-of-concept repoOkay to use Store pattern for mutations, just kick them off outside of dataRequestsDefunctionalizationWrap early, unwrap lateDerive from source of truth instead of storing derived data

Jun 6, 20221h 18m

Ep 57057: State of Elm 2022

Martin Stewart (github)State of Elm 2022 GitHub RepoBrian Hicks' State of Elm talk from Elm EuropeBrian's State of Elm 2018 blog postGitHub issues for state of Elm repoelm-pages showcase pageMartin's GOTO conference talk - Hobby Scale: Making Web Apps with Minimal FussEvan's talk What is SuccessWhat's Working for Elm episodeMartin's Elm Online talk (including a preview of lamdera-test framework)

May 23, 20221h 20m

Ep 56056: elm-book with Georges Boris

Georges Boris (twitter) (github)elm-bookElixir's Hex docsLeaf lang docs site (built with elm-book)elm-verify-exampleselm-book in elm-book guideelm-visualization examples siteelm-charts siteelm-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 sitedmy's githubelm-graphql selection set docs page (reads like a tutorial top to bottom)uncover.co

May 9, 20221h 16m

Ep 55055: Use the Platform

Alex Russell's post Platform Adjacency TheoryVoiceOver rotor utilityUse semantic HTML to improve screen reader experiencesForms - use onsubmit with a form to get nice keyboard handling and screen reader accessibilitydatetime-local <input> tagsMDN docs for sending form dataHTMHell (examples of non-standard HTML from the wild and why it matters)Dillon's Use the Platform blog post

Apr 25, 20221h 15m

Ep 54054: Developer Productivity

Incremental Steps episodeBuilt-in quality (from Lean principles)Tiny commitsKent Beck's book TDD by exampleDead Code episodeClose open loopsGetting Things Done (GTD) methodologyCapturingProcessingPomodoro Methodrainymood.comCentered AppTrunk-based developmentelm-review template flag (preview folder)sparksp/elm-review-no-forbidden-wordsSelf-documenting codeSelf-documenting code tweet and blog postelm-verify-examplesAPI Design Lessons episodeHammock-Driven DevelopmentReleasing vs. shippingContinuous DeliveryNaming as a Process article by Arlo Belshee

Apr 11, 20221h 21m

Ep 53053: Dead Code

Oxbow code (code that was once used but is no longer in use)Jeroen's elm-review-unused elm-review ruleJeroen's blog post Safe dead code removal in a pure functional language blog postelm-review-simplifyGetting Things Done (GTD) methodologyInbox ZeroJeroen's no-extraneous-dependencies ruleTry out elm-review-unused with elm-review --template jfmengels/elm-review-unused/exampleJeroen's You thought you had no dead code post

Mar 28, 20221h 6m

Ep 52052: Category Theory in Elm with Joël Quenneville

Joël Quenneville (Twitter)Elm's Universal Pattern episodeList.concatMap is the same pattern as andThen under a different nameandThen identity can be used to flatten somethingDillon's Combinators articleMartin Janiczek's elm-list-cartesian package gives two valid map2 implementions for ListMonoid - need a way of having something empty, and way to combine two things - for example addition for numbers starting with 0Jeroen's elm-review-simplify packageMore of Joël's distillation of category theory ideas:Running out of maps (applicatives)The Mechanics of Maybe (taking maybe apart and putting it back together)Two ways of looking at map functions (functors)Elm's universal pattern (applicatives)Inverting a binary tree (folding, catamorphisms)Joël's directory of blog posts on the ThoughtBot blog

Mar 14, 20221h 19m

Ep 51051: Primitive Obsession

Solving the Boolean Identity Crisis (Elm Conf talk by Jeremy Fairbank)If It Compiles, It Works episodeOpaque Types episodeLife of a File talk by Evan CzaplickiRoc languageianmackenzie/elm-units packageParse, Don't Validate episodeUsing Semantic Types to Squash Bugs - Dillon's talk where he walks through the mechnical steps to safely introduce a wrapper typeDillon's Entry Gatekeepers blog post

Feb 28, 20221h 11m

Ep 50050: Large Elm Codebases with Ju Liu

Ju Liu (twitter) (github)Elm at NoRedInkJu's blognoredink-ui is NoRedInk's internal UI kit (live demo page)avh4/elm-program-testelm-sortable-table APIImplementing Elm Podcast season 1cultureamp/react-elm-components (React library for embedding Elm as a Web Component)elm-community/js-integration-examplesNoRedInk is hiring Elm and Haskell devsJu Liu's blog

Feb 14, 20221h 8m

Ep 49049: Optimizing Performance with Robin Hansen

Robin Hansen (twitter) (github)elm-optimize-level-2Html.Lazy APIOutperforming Imperative with Pure Functional Languages - talk about Roc by Richard FeldmanTail call optimizationSuccesses, and failures, in optimizing Elm’s runtime performance - Robin's blog post series on his elm-optimize-level-2 optimizationsWASMMaybe you don't need Rust and WASM to speed up your JSBrian Carroll's blog posts on an Elm WASM prototypeRobin's Stabel language - a stack oriented language that compiles to WASMWhat's Working for Elm Elm Radio episodeProcess.elm comment about the potential for parallelizing work

Jan 31, 20221h 13m

Ep 48048: If It Compiles It Works

Dillon's blog posts If It Compiles It Works and When It Compiles But Doesn't WorkWiringRefactoringRunning code paths to check it works vs checking assumptions at the gateDillon's talk Types Without BordersShotgun surgery - Parse, Don't Validate episodeOrder independentYou can trust your testsKeeping what you depend on to a minimum helps make things trustworthySemantics can make it harder to predict (like parser)Json.Decode.maybe is almost never what you intendScaling Elm Apps talk by Richard FeldmanGary Bernhardt's Wat videoElm Radio Opaque types episode

Jan 17, 20221h 1m

Ep 47047: What's Working for Elm

Woody Zuill on Turn Up the GoodMob ProgrammingWhere Could We Turn Up the Good?Pure FPElm 0.19 removing side effectsPurity is what makes elm-review interestingJeroen's post Safe dead code removal in a pure functional languageNo runtime exceptionsUseful Error MessagesUseful error messagesEvan's 2017 Deconstructconf talk Evan Czaplicki On StorytellingEvan's talk What is Success?Having a single language flavorIsomorphic codeMeta frameworks (elm-pages, Lamdera, elm-spa)Decoupled toolsThe community can iterate quickly and experiment with new changeselm-optimize-level-2 and elm-format are great exampleselm-optimize-level-2 can make their way upstream and don't break Elm's guarantees or assumptionsRobin Hansen's blog post series Successes, and failures, in optimizing Elm’s runtime performanceExtensible Web ManifestoPlatform should provide building blocks, not solve every specific use caseStable CoreStable data layer, architecture allows ecosystem to evolve around it with less churnCommunity Members Working on What They're Passionate AboutPeople passionate about a problem working on it in the ecosystemPerformanceLeveraging Elm's unique characteristics for performance (immutability, static language, known types, etc.)Elm compiler performance - compiler speed mattersContent and ConferencesElm community content and conferencesElm Online meetdownThe Elm PhilosophyEvan's Elm philosophy tweetPhilosophy has influenced package design in the ecosystemElm Slack #api-design channel

Jan 3, 20221h 15m