Topics include: - 5:41 – Hasura, React, URQL + Formik = Nutrition app - 44:51 – React to the Future by Jordan Walke Links: - [URQL](https://formidable.com/open-source/urql/) - [Formik](https://jaredpalmer.com/formik) - [Reach Dialog](https://reacttraining.com/reach-ui/dialog) - [Dan Abramov's tweet on controlled/uncontrolled components](https://twitter.com/dan_abramov/status/1200436185426006017) - [React to the Future - Jordan Walke](https://www.youtube.com/watch?v=5fG_lyNuEAw) - [Let's Program ...
Dec 05, 2019•1 hr 25 min•Ep. 81
Topics include: 0:00 – Livable code with Ember 3:09 – Speeding up Ember builds, and bugs with React rebuilds 7:09 – Undoing bad abstractions 11:30 – Building a mobile nav with React Spring + Reach Modal 18:48 – Documentation: Guides vs. How-tos vs. Examples 34:40 – Composability, and awareness of React's children vs. Ember's yield 38:30 – Structural vs. reusable components 54:54 – UI Testing 1:03:04 – Does advice for building good libraries transfer to buiding good apps? Links: What nobody tells...
Nov 27, 2019•1 hr 16 min•Ep. 80
Topics include: - 1:46 – Exploring the React paradigm - 11:45 – How have your opinions on UI dev changed since starting Ember? - 16:00 – How React's render functions and Ember's templates both solve the same problem: how to restrict the rendering code that users write - 34:03 – JavaScript's multiparadigm approach: OOP + functional - 40:13 - Hooks and the importance of lifecycle entanglement - 46:15 – Do Hooks succeed in bringing the ideas of declarative rendering to our JavaScript code? - 53:58 ...
Nov 13, 2019•2 hr 3 min•Ep. 79
Topics include: - 0:32 – React is hard! - 7:55 – Should we be thinking about render cycles while writing React? - 30:08 – How much objective coding advice is there? - 39:23 – The Dark language + platform, and how concurrent languages can work against serverless architecture - 57:57 – Deployless architecture - 1:02:25 – Auth in Hasura Links: - [Dark Lang with Ellen Chisa and Paul Biggar](https://softwareengineeringdaily.com/2019/10/21/dark-lang-with-ellen-chisa-and-paul-biggar/), on the Software ...
Oct 31, 2019•1 hr 17 min•Ep. 78
Topics include: - 0:57 – Wanting to learn more about GraphQL - 14:41 – Constraints, theory and reality in GraphQL and REST APIs - 21:54 – What matters when choosing technology? - 35:06 – Can GraphQL queries and types replace traditional ORMs? - 48:47 – Why did Rails and other technologies become popular? Does it matter? - 1:00:48 – Is there objectively true advice in programming? Links: - [The Bike Shed # 215: Start With People](https://bikeshed.fm/episodes/215)...
Oct 23, 2019•1 hr 11 min•Ep. 77
Topics include: - 2:31 – Tailwind, PostCSS, and low-level vs. high-level tools - 13:12 – Mirage JS and Cypress - 13:55 – Ember 3.13 and Octane - 15:28 – Ryan's experiencing upgrading EmberMap from 3.4 to 3.12 - 20:19 - ES Modules, and learning that imports are not code - 42:12 – React and useEffect, and the difference between reads and writes vs. rendering and event handlers - 1:00:50 – Object-oriented vs. functional programming in JavaScript Links: - [Ember 3.13 Release (Octane Preview)](https:...
Oct 11, 2019•1 hr 7 min•Ep. 76
Topics include: - 0:00 – Dealing with asynchrony and persistence in Vue - 8:56 – Thoughts on Vue's APIs, and how they compare with React and Ember - 22:20 – "Magic" in UI frameworks vs. server-side frameworks - 27:17 – Build work in Mirage JS, and a new passthrough API - 38:26 - How opinionated should project documentation be? - 50:40 - Edward Faulkner's talk on compilers, abstractions, ES modules, and Embroider Sponsors: - [Next Release](https://www.nextrelease.io/ember/), mention EmberMap when...
Oct 04, 2019•1 hr 14 min•Ep. 75
Topics include: - 0:39 – The "Weekend Warrior" technology adoption hypothesis - 6:55 – Gatsby as a soft intro to GraphQL - 8:55 – Building a GraphQL backend with Hasura - 18:08 – GraphQL mutations - 21:47 – Mocking out GraphQL in Mirage - 45:03 – Gotchas when using backends as a service - 49:47 – DX and user success vs. "correct" technology choices Sponsors: - [Next Release](https://www.nextrelease.io/ember/), mention EmberMap when you sign up for a trial and get 10% off Links: - [Hasura](https:...
Sep 19, 2019•1 hr 9 min•Ep. 74
Topics include: 0:53 – Metaphysics and JavaScript by Rich Harris, and declarative side effects 15:26 – An Ember example that would be improved by hooks and declarative side effects 23:46 – Pitfalls and escape hatches when using hooks 35:40 – Rich's argument that rendering isn't even a declarative function of state, let alone side effects 41:42 – Deeper dive into useEffect docs 1:01:41 – Thought experiment on effects that sync with different data stores Sponsors: Next Release , mention EmberMap w...
Sep 11, 2019•1 hr 12 min•Ep. 73
Topics include: 2:41 – Playing with Typescript 10:13 – Thoughts on Ember's decision to expose Properties vs. Attributes 32:09 – "How long will this take?" 45:15 – Debugging slow Mirage factories Sponsors: Next Release , mention EmberMap when you sign up for a trial and get 10% off Links: Shape Up Copy, Paste, Repeat Podcast...
Aug 28, 2019•56 min•Ep. 72
Topics include: 1:37 – APIs are about Policy, by Steven Wittens 5:47 – Part 1: RESTless API 49:16 – Part 2: Regressive Web Apps 1:08:19 – Part 3: GraftQL Links: APIs are about Policy , by Steven Wittens
Aug 21, 2019•1 hr 37 min•Ep. 71
Topics include: 0:00 – Unique keys for lists in React and Ember 8:40 – Why Handlebars feels safe 9:34 – Solving a stale state React hooks bug, and how Ember avoids this via object references 24:29 – ESPN's website and self-imposed technical constraints 28:10 – React in Codesandbox 36:53 – Tradeoffs between "magic" in a framework vs. learning how to wire things up yourself - especially in a fast-moving ecosystem like JavaScript 50:35 – Hooks vs. components, and clarity in boundaries 53:29 – Pairi...
Aug 07, 2019•1 hr 19 min•Ep. 70
Topics include: 5:26 – Bringing Mirage to a wider JavaScript audience 17:14 – Setting up tests in Gatsby, and why wiring up boilerplate code is not always bad 28:56 – React's children API, MDX, and template imports in Ember 39:17 – How extracting things in React feels compared to extracting things in Ember 42:30 – React's children, and constraints vs. flexibility 1:05:52 – API design, and letting someone feel the pain rather than telling them they can't do something 1:23:16 - Dynamic vs. static ...
Jul 31, 2019•1 hr 34 min•Ep. 69
Topics include: 2:45 – Using Gatsby to build miragejs.com 12:05 – Tradeoffs between low-level and high-level APIs 30:21 – Writing Gatsby data providers, and using GraphQL to query Gatsby's content mesh 41:33 – GraphQL vs. REST is wrong 44:16 – API design 58:45 – What's the best architecture for building modern UIs on the web? Sponsors: TrueCoach , check out their engineering culture and hiring pages Links: Mirage.js Gatsby GraphQL...
Jul 18, 2019•1 hr 9 min•Ep. 68
Topics include: 1:35 – The benefit of no staging environments 10:14 – Using FastBoot without a runtime dependency, and pre-rendered SPAs 17:30 – Sponsor: TrueCoach is hiring! 23:02 – UI feedback, and Designing Fluid Interfaces by Apple 39:24 – Working with custom fonts, and typography lessons learned Sponsors: TrueCoach , check out their engineering culture and hiring pages Links: Percy Visual Regression Testing Launch Darkly Designing Fluid Interfaces , from Apple, WWDC 2018 The Inter typeface ...
Jul 11, 2019•55 min•Ep. 67
Topics include: 2:44 – What to do if your app depends on an unmaintained addon 26:15 – The workflow of designers who are also coders 32:31 – Why the status quo of web tooling is insufficient for multi-app workflows 41:46 – Side effects in React and Ember, and how Hooks help authors avoid making API mistakes Links: Ember CLI Deprecation Workflow Adopted Ember Addons Matthew Beale's tweet on improving library APIs...
Jun 26, 2019•1 hr 1 min•Ep. 66
Topics include: 0:00 – Playing with React JS Using React after working with Ember for 5 years React's onboarding experience Why early success matters for OSS adoption 15:44 – Micro Frontends Comparison with service-oriented architecture Our experience using micro frontends at TED The tradeoffs that matter most to us 47:56 – Call for conversation: Ember-turned-React dev Links: Micro Frontends , by Cam Jackson...
Jun 19, 2019•52 min•Ep. 65
Topics include: 3:50 – Opinions on DHH's 2019 RailsConf keynote about sustainable open source 23:28 – Keeping tests dumb, dynamic tests, and TDD workflow tradeoffs 36:31 – Octane is not ready, and our conservative approach to adopting new tech 47:50 – Tailwind 1.0 53:23 – New series: Ember Animated Links: DHH's 2019 RailsConf keynote Crash Log podcast Robert Jackson's #EmberJS2019 blog post EmberMap's new series on Ember Animated series...
Jun 05, 2019•56 min•Ep. 64
Topics include: 2:26 - Ember's 2019 Call for Blog Posts, and a retro on last year's call 7:50 - Why Katie's looking forward to Embroider, Ember Data, and updates to the Router 10:52 - What the process is for "finishing" Octane 14:37 - Katie's experience on the Steering Committee 18:02 - The infrastructure behind Ember Try and Ember Observer 34:18 - Common anti-patterns in apps, like deeply nested components 39:18 - Katie's preference for acceptance tests over unit tests in UI development 42:50 -...
May 29, 2019•1 hr 6 min•Ep. 63
Topics include: 4:25 – Causes of burnout other than overwork 9:02 – Finalizing Mirage 1.0 10:42 – Keeping your development environment stateless 21:00 - Unified APIs for backend and frontend data queries 42:28 – Tailwind 1.0 Links: Copy Paste Repeat Ep. 18 Twitter conversation between Trek and Sam on shared UI models Sam on Twitter Ryan on Twitter...
May 22, 2019•49 min•Ep. 62
Topics include: 4:23 – Overview of Omnimodal's tech stack 6:38 – Omnimodal's mission: to help cities manage transportation demand 16:10 – How to ingest open transportation data and present it in real time 21:43 – How graphics-heavy OpenGL and C++ apps can benefit from web tooling 31:06 – Why state machines are used in both video game and web development 34:55 – How JavaScript UI development compares to other paradigms 38:46 – Why Ember and Rails were chosen for Omnimodal's technology needs 42:09...
May 08, 2019•1 hr 28 min•Ep. 61
Topics include: 3:12 – Getting Mirage 1.0 out the door, Mirage's roadmap, and how other communities treat domain modeling 15:18 – Seth Godin's blog post on tribal marketing 27:08 – Sustainability and project management in open source 48:06 – What benefits do products actually unlock? Links: Ember CLI v1.0.0-beta.1 released "People like us do things like this" by Seth Godin Justin Jackson on Full Stack Radio Transistor.fm...
May 01, 2019•54 min•Ep. 60
Topics include: 0:00 – Letting your yes be yes, following through on your commitments, and paying attention to opportunity cost 6:40 – When Ember releases actually become LTS versions 9:13 – Why we need "test apps" when developing Addons 16:50 – How to use newer syntax when authoring Addons that support older Ember versions 22:07 – How angle brackets change our component implementations 31:46 – How to make the APIs of our domain components more portable 38:45 – How to reuse code that has implici...
Apr 24, 2019•1 hr 2 min•Ep. 59
Edward Faulkner joins Sam and Ryan to chat about his work on Embroider, a new three-stage architecture that will power the next generation of the Ember CLI ecosystem. They also talk about myriad other topics, including Yarn Plug'n'Play, the benefits of debugging other people's code, how Ember is embracing the larger JavaScript ecosystem, and more. Topics include: 0:00 – What's hard about programming, why schools are bad at teaching math, and more 10:47 – Why computers should empower ordinary peo...
Apr 17, 2019•1 hr 54 min•Ep. 58
Derrick Reimer joins Sam and Ryan to chat about building his new real-time chat product Level as an SPA using Elm, Phoenix and GraphQL. He covers domain modeling in Phoenix, his experience building his first GraphQL API, type safety in Elm, and the data fetching patterns he's using to support his application's real-time functionality. Topics include: 2:01 – What is Level? What tech stack are you using to build it? 14:34 – Building the GraphQL API with Phoenix and Absinthe 37:40 – Building the fr...
Apr 10, 2019•1 hr 32 min•Ep. 57
Sam and Ryan continue their discussion from the end of Episode 54 about how much we actually rely on our test suites versus how much implicit trust we place in semver. They also talk about some new Ember Octane features as well as a data-fetching issue. Topics include: 2:00 – Do we trust our test suites? 10:00 – Breaking APIs in a changelog vs. in code 20:27 – Modifiers – they're kinda like mixins 37:17 – Named blocks 38:29 – Ember Octane & EmberConf trainings 43:15 – Fetching user-specific ...
Apr 04, 2019•57 min•Ep. 56
Chris Garrett joins Sam and Ryan to chat about what's coming to Ember in Octane, its first edition. Chris talks about how module unification, decorators, ES6 classes, named args, angle-bracket components, template imports, modifiers, and Glimmer components offer a cohesive new programming model for Ember.js developers. Topics include: 1:18 – De-scoping Module Unification from Octane 2:25 – Run-time APIs are coming to Octane, build-time APIs are being worked on 5:04 – What's the vision behind Emb...
Mar 13, 2019•1 hr 6 min•Ep. 55
Topics include: 0:00 - Module unification 1:20 - Component resolution 5:45 - Why we don't use angle brackets 9:35 - SPAs should do everything a server app can do 10:15 - Ember's Router 11:00 - Replicating the server's "fresh data" behavior 17:15 - Reloading stale data 23:50 - Fetching data 23:50 - Getting Mirage working with React and Vue 26:10 - Data loading components 29:41 - Knowing what queries are currently rendered 32:15 - Using cache keys to track what data is loaded 35:00 - Pushing data ...
Mar 06, 2019•56 min•Ep. 54
Topics include: 0:00 - Refreshing an Ember app when a new version is deployed 11:05 - When SPAs become too difficult 14:50 - Building an SPA never got as quick as we'd hoped 19:20 - You're now responsible for two applications 28:00 - Integration costs 32:00 - Architecture is easier within a single monolith 40:20 - Beginners should use the same tools as experts 40:50 - Rolling advanced solutions back into the framework 47:41 - Services that are used by both beginners and experts 52:32 - Can you s...
Feb 27, 2019•1 hr 1 min•Ep. 53
Topics include: 01:15 - Implementing Mirage's AddonDocs blog with GitHub issues 15:30 - Discussion forum vs. GitHub issues vs. blog comments 18:18 - Moving the blog post source to a GitHub issue 23:30 - Dynamic vs. static data, and implications for changing build-time data to run-time data. 27:40 - Downsides of run-time data 37:00 - SPA architecture and distributed systems. How does React/Vue "happy path" architecture differ from Ember's? 41:45 - Testing is the only true way to know if your depe...
Feb 13, 2019•1 hr 5 min•Ep. 52