Elixir Talk
Elixir Talk
Elixir Talk
Desmond Bowe and Chris Bell present a titillating discussion about Elixir application design and the state of the ecosystem. Ask us a question at https://github.com/elixirtalk/elixirtalk and follow us on Twitter @elixirtalk
Episode 166 feat. Sean Stavropoulos
# Episode 166 - Elixir at Boulevard w/ Sean Stavropoulos We're back after a hiatus on our irregularly posted podcast! Chris and Desmond are back in the hot seat, this time joined by CTO and co-founder at Boulevard, Sean Stavropoulos where we hear all about the founding of Boulevard and their early adoption of Elixir and GraphQL. In this show, we touch on: * The adoption of Elixir early in 2017 * The adoption of GraphQL early * GraphQL vs REST, especially for third party APIs * Hiring Elixir engineers * How they deploy and run Elixir * How they do observability and monitoring * How stateful are their services * The future vision for Elixir at Boulevard ## Links - Boulevard: https://joinblvd.com - Sean on Twitter: https://twitter.com/seanstavro - Seven Languages in Seven Weeks: https://www.amazon.com/Seven-Languages-Weeks-Programming-Programmers/dp/193435659X - Absinthe GQL: https://github.com/absinthe-graphql/absinthe - Absinthe Dataloader: https://github.com/absinthe-graphql/dataloader - Apollo GraphQL: https://www.apollographql.com/ - Honeycomb: https://honeycomb.io - AWS Fargate: https://aws.amazon.com/fargate/ - Postgres tuning and performance at Pleroma: https://blog.soykaf.com/post/postgresql-elixir-troubles/ - Spandex: https://github.com/spandex-project/spandex - OpenCensus Elixir: https://github.com/opencensus-beam/opencensus_elixir - Absinthe Subscriptions: https://hexdocs.pm/absinthe/subscriptions.html
Dec 4, 2020
52 min
Episode 165 feat. José Valim
# Episode 165 - José Valim on Bytepack, Open Source, and LiveView changes in Phoenix 1.5 Chris and Desmond are backed by a very special guest; José Valim! You might know José as the creator of the Elixir programming language and we're excited to have him back as a 3rd time guest on the show. José walks us through a brand new Dashbit project, Bytepack which is a way to package and sell software projects and takes all of the hassle out of the process today. We dig into Bytepack and discuss sustainable open source, Dashbit, and more. As well as that we also hear about the new Phoenix 1.5 features, LiveDashboard, all of the great new LiveView enhancements, some nice new Elixir additions and much more! A lot of links in this episode, think we got them all below but let us know if we missed anything 👇 ## Links - Jose on Twitter: https://twitter.com/josevalim - Dashbit: https://dashbit.co - BytePack: https://bytepack.io - Payitoff: https://payitoff.io - email desmond[at]payitoff.io for job info! - Oban UI: https://oban.dev - Phoenix 1.5 release: https://elixirforum.com/t/phoenix-v1-5-0-released/30693 - Phoenix LiveView: https://github.com/phoenixframework/phoenix_live_view/blob/master/CHANGELOG.md#0120-2020-04-16 - LiveView testing additions: https://hexdocs.pm/phoenix_live_view/Phoenix.LiveViewTest.html - Phoenix LiveDashboard: https://github.com/phoenixframework/phoenix_live_dashboard - Surface Component Library: https://github.com/msaraiva/surface - 15 minute Twitter demo: https://www.phoenixframework.org/blog/build-a-real-time-twitter-clone-in-15-minutes-with-live-view-and-phoenix-1-5 - OTP 23 Release: https://www.erlang.org/news/140 - ElixirConf 2019 Keynote: https://www.youtube.com/watch?v=oUZC1s1N42Q - Elixir Compiler Tracing: https://blog.appsignal.com/2020/03/10/building-compile-time-tools-with-elixir-compiler-tracing-features.html - Boundary by Saša Jurić: https://github.com/sasa1977/boundary
May 26, 2020
1 hr 1 min
Episode 164 - Quarantine Special: Module Organization in Elixir
We’re back with another episode of ElixirTalk. In this episode Chris & Desmond do a deep dive on organizing code in Elixir and talk about some best practices. We recorded this a couple weeks ago so it may sound a little stale :) We touch on: * Module and context naming * How we like to organize code in our projects * Big long modules vs many small modules * How to split up contexts * Injecting code via macros ## Links * On the Criteria to be used in decomposing systems into modules - D.L Parnas: https://www.win.tue.nl/~wstomv/edu/2ip30/references/criteria_for_modularization.pdf * Proposal for some ew rules for Phoenix contexts: https://devonestes.herokuapp.com/a-proposal-for-context-rules * Write code that is easy to delete, not easy to extend: https://programmingisterrible.com/post/139222674273/write-code-that-is-easy-to-delete-not-easy-to * How to use `use` well: https://dockyard.com/blog/2017/12/07/macro-madness-how-to-use-use-well * Protocols in Elixir: https://hexdocs.pm/elixir/Protocol.html
Apr 22, 2020
38 min
Episode 163 - EMPEX LA Recap, Project Management Tools, and Monitoring
We’re back with a recap with another episode of ElixirTalk. In this episode we cover quite a few topics; an EMPEX LA recap, a foray into project management tools that we like and use (!), and then we round things out by talking about Chris integrating App Signal into his API at Muru. It’s a fun, jam packed episode with us going all around through many topics and go longer than we thought and off on an ops tangent (as usual). Times of topics: - Intro [00:00 - 03:40] - EMPEX LA Recap [03:40 - 17:10] - Project Management Tools: [17:10 - 25:40] - Monitoring / Metrics / Instrumentation: [25:40 - 39:30] - Close [39:30 - 41:00] ## Links * EMPEX LA: https://empex.co/la * Todd Resudek - It’s Time to Embrace Erlang: https://www.youtube.com/watch?v=mJb9wjUJhm4 * Shanti Chellaram - High Performance Data Structures in Erlang: https://www.youtube.com/watch?v=fdxhxAqxR94 * Jesse J. Anderson - Powering Pixels with Scenic: https://www.youtube.com/watch?v=w3L-VZtP_dY * Geoffrey Lessel - Controlling MIDI Devices in Real Time with Elixir – https://www.youtube.com/watch?v=4o4FzOFL2eE * Michael Reis - Nerves Takes to the Sky: https://www.youtube.com/watch?v=4o4FzOFL2eE * Jeff Grunewald - Stream-processing connected vehicle data in Elixir: https://www.youtube.com/watch?v=OKnY2hO2JdA * EMPEX NYC: https://empex.co/nyc * EMPEX NYC CFP: https://forms.gle/Vv3aqpXbtQA8a4TU8 * Desmond on Twitter: https://twitter.com/desmondmonster and Chris on Twitter: https://twitter.com/cjbell_ * Pivotal Tracker: https://www.pivotaltracker.com/ * Clubhouse: https://clubhouse.io/ * Linear: https://linear.app * Notion: https://notion.so * Appsignal: https://appsignal.com * Spandex: https://github.com/spandex-project/spandex * Datadog: https://datadog.com * Telemetry: https://github.com/beam-telemetry/telemetry
Mar 6, 2020
41 min
Episode 162 feat. Bruce Tate
# Episode 162 - Designing Elixir Systems with Bruce Tate It's another episode of ElixirTalk, this time Chris and Desmond are joined by the one and only Bruce Tate author of many notable titles such as Programming Phoenix and Seven Languages in Seven Weeks, as well as being a frequent speaker on the circuit. We dig into the new Designing Elixir Systems with OTP book, that James Edward Gray, II and Bruce co-authored. We talk a lot about the way systems are put together, going into depth about the 'Do Fun Things with Big, Loud Worker-Bees' pattern that's advocated for in the book. Along the way we talk about software design, persistence and more. Come along for the ride, it's a fun one! ## Links - Bruce Tate on Twitter: twitter.com/redrapids - Grox.io: https://grox.io - Designing Elixir Systems with OTP: https://pragprog.com/book/jgotp/designing-elixir-systems-with-otp - Chris McCord Elixir Conf Keynote 2019: https://www.youtube.com/watch?v=txk4WAlabvI - The Climb at EMPEX 2016: https://www.youtube.com/watch?v=9lkO-kgxoiY - Seven Languages in Seven Weeks: https://pragprog.com/book/btlang/seven-languages-in-seven-weeks - Poncho Projects: https://embedded-elixir.com/post/2017-05-19-poncho-projects/ - Grox.io Quadblock Series: https://grox.io/series/quad - The River at Lone Star Elixir 2019: https://www.youtube.com/watch?v=KW85rW6-PgI - Justin Schneck goes to Very: https://www.verypossible.com/news/very-hires-justin-schneck-co-author-of-nerves-project?utm_content=111962264&utm_medium=social&utm_source=twitter&hss_channel=tw-1009603460 - EMPEX LA: https://empex.co/la - EMPEX NYC: https://empex.co/nyc - Lonestar Elixir Conference: https://lonestarelixir.com/ - Gig City Elixir Conference: https://www.gigcityelixir.com/ - Dev Next Conference: https://www.devdotnext.com/
Jan 31, 2020
57 min
Episode 161 feat. Todd Resudek
# Episode 161 - feat. Todd Resudek We’re back with another episode of ElixirTalk, this time joined by the one and only Todd Resudek who gives us a run through of his talk at this years EMPEX LA entitled “It’s Time to Embrace Erlang”. Listen in to hear us discuss Todd’s nerve projects (including his recent LiveView Smart Mirror), why Todd thinks learning you some Erlang as an Elixir developer is important, and even about Hollywood Hogan and some other wrestling trivia. This show has it all. ## Links - EMPEX LA: https://empex.co/la - Intro to Elixir Training: https://ti.to/empex/empex-la-2020 - Todd on Twitter: https://twitter.com/sprsmpl - SimpleBet: https://www.simplebet.io/ - Building a “Smart Mirror” with Phoenix LiveView: https://medium.com/@toddresudek/building-a-smart-mirror-with-phoenix-liveview-18193ee6438f - Building a Smart Sprinkler Controller with Nerves - https://www.youtube.com/watch?v=qklciKp7sD8 - Erlang Crypto module: https://erlang.org/doc/man/crypto.html - Fred Hebert Advent of Code 2019 in Erlang: https://www.youtube.com/watch?v=TqzBchjZw4Q - Erlang Queue module: https://erlang.org/doc/man/queue.html - Erlang ETS module: https://erlang.org/doc/man/ets.html - Erlang Digraph module: https://erlang.org/doc/man/digraph.html - Learn you some Erlang: https://learnyousomeerlang.com/ - Adopting Erlang: https://adoptingerlang.org/ - Decompile Module: https://github.com/michalmuskala/decompile - Property-Based Testing with PropEr, Erlang and Elixir: https://propertesting.com/ - Lonestar Elixir Conference: https://lonestarelixir.com/ - CodeBEAM SF 2020: https://codesync.global/conferences/code-beam-sf/
Jan 24, 2020
42 min
Episode 160-A new decade, Plataformatec acquisition, Elixir 1.10-rc and more
We’re back! It’s been a while but it’s 2020 and Chris and Desmond are back with a new episode for the new decade. In this very timely episode we dive into the big community news; Plataformatec being acquired and what that means for the community and the new Elixir v1.10-rc.0 release. After that, we accidentally stray once again into a spirited discussion about ops, Kubernetes, and picking technology that suits you right now. Desmond provides some controversial opinions and we kick off the new year with a bang :boom: ## Links in the show notes - EMPEX LA: https://empex.co/la - Bruce on Twitter: https://twitter.com/redrapids - James & Bruces book: https://pragprog.com/book/jgotp/designing-elixir-systems-with-otp - EMPEX NYC: https://empex.co/nyc - Plataformatec Announcement: http://blog.plataformatec.com.br/2020/01/important-information-about-our-elixir-and-ruby-open-source-projects/ - More context on the announcement on Elixir Forum: https://elixirforum.com/t/plataformatec-acqui-hired-by-nubank/28072/3 - Elixir v1.10.0-rc.0: https://github.com/elixir-lang/elixir/releases/tag/v1.10.0-rc.0 - Elixir 1.9 releases vs Distillery: https://elixirforum.com/t/elixir-1-9-release-vs-distillery/23454 - Jose on Elixir releases vs Distillery: https://news.ycombinator.com/item?id=20267585
Jan 8, 2020
45 min
Episode 159 - Property-Based Testing & Authorization in APIs
Chris and Desmond are back! In this episode we talk about Desmond’s exploration into Property-Based testing, and then do a deep dive into authorization and access control in Chris’ GraphQL API. Property-based testing is a new world for both of us, but we do our best to tell you all about what libraries to use and how we’re thinking of using it. Chris is deep in some reworking of the authorization code in his GraphQL API and we go into depth talking about how it is structured, some of the challenges of building a flexible authorization system and then how this integrates back into a system. After talking about authorization we then go into validation of parameters in our APIs and how we think about typing and validating them at the boundaries, and in our Ecto Schemas. ## Links * EMPEX LA (https://empex.co/la) * StreamData Library for property testing (https://github.com/whatyouhide/stream_data) * PropEr (https://github.com/proper-testing/proper) * PropSchema (https://github.com/podium/prop_schema) * Property-Based Testing with PropEr (https://pragprog.com/book/fhproper/property-based-testing-with-proper-erlang-and-elixir) * StreamData: Property-based testing and data generation for Elixir (https://elixir-lang.org/blog/2017/10/31/stream-data-property-based-testing-and-data-generation-for-elixir/) * Canada Library (https://github.com/jarednorman/canada) * GraphQL Scalar Types in Absinthe (https://hexdocs.pm/absinthe/custom-scalars.html) * JSON Schema in Elixir (https://github.com/jonasschmidt/ex_json_schema) * API versioning at Stripe (https://stripe.com/blog/api-versioning)
Dec 10, 2019
50 min
Episode 158 - Oban, Background Jobs, Concurrency, and Is Elixir Even Worth It?
# Episode 158 - Oban, Background Jobs and Designing Resilient Systems in Elixir. In this episode of ElixirTalk Chris & Desmond dive into background jobs using Oban, a new library that relies on Postgres to add persistence to job scheduling. We discuss why you’d want to reach for a library like Oban in the first place, which leads us to a discussion on distributed systems design, failure handling, and some of the gotchas of modeling everything in-memory. We’ve added some extra reading in the links belong for some articles that we didn’t mention in the episode, but might serve as good reading material regardless. ## Links - EMPEX LA: https://empex.co/la - Pigeon Push Notification: https://github.com/codedge-llc/pigeon - Oban: https://github.com/sorentwo/oban - Oban Recipes: https://sorentwo.com/2019/07/18/oban-recipes-part-1-unique-jobs.html - Eli Kim Leveraging GenStage to Implement You Own Event Bus: https://www.youtube.com/watch?v=ffhCUKI2_ho - Dangers of Single Global Process: https://keathley.io/blog/sgp.html - To spawn or not to spawn: https://www.theerlangelist.com/article/spawn_or_not
Nov 13, 2019
46 min
Episode 157 feat. Chris McCord - LiveView/Phoenix part Deux
# Episode 157 – LiveView & The Future of Phoenix ft. Chris McCord Today on ElixirTalk we’re joined by Chris McCord who you may know as the creator of the Phoenix framework, and a second time guest on ElixirTalk. In this episode we talk quite a bit about LiveView, the journey of taking it from a prototype to release, the optimizations that have come along the way, and some of the great examples of LiveView running today. We get into some of our previous discussions about the balance of LiveView vs Javascript with Chris and how we frame the benefits of using the technology today. Additionally we hear about what’s on the roadmap for Phoenix, and the roadmap outside of the Phoenix core library itself. Thanks as always to Chris and the Phoenix Core team for their work! ## Links * ElixirConf 2018 – Announcing LiveView: https://www.youtube.com/watch?v=Z2DU0qLfPIY * ElixirConf 2019 – Chris’ Keynote: https://www.youtube.com/watch?v=txk4WAlabvI * What’s new and next for LiveView: https://dockyard.com/blog/2019/09/06/whats-new-and-next-for-phoenix-liveview * LiveView JavaScript Hooks: https://hexdocs.pm/phoenix_live_view/Phoenix.LiveView.html#module-javascript-client-specific * LiveView in Marlus’ ElixirConf talk – https://www.youtube.com/watch?v=tPu-P97-cbE * Phoenix Presence and CRDTs: https://dockyard.com/blog/2016/03/25/what-makes-phoenix-presence-special-sneak-peek * Dark Lang: https://darklang.com * Oban Job Library: https://github.com/sorentwo/oban * Our discussion on LiveView: https://soundcloud.com/elixirtalk/episode-154-a-great-intro-elixirconf-recap-javascript-v-liveview * Phoenix Phrenzy Competition: https://phoenixphrenzy.com/ * Dockyard: http://dockyard.com
Oct 24, 2019
58 min
Load more