
Elixir Mix
Join our weekly discussion of the popular functional language built on top of the Erlang virtual machine. Each week, we discuss the world of Elxiir, Phoenix, OTP, and then BEAM.Become a supporter of this podcast: https://www.spreaker.com/podcast/elixir-mix--6102049/support.
Latest episodes

Jul 16, 2019 • 1h 8min
EMx 060: Property-Based Testing, Dialyzer, & Inaka with Brujo Benavides
Sponsors Sentry– use the code “devchat” for two months free on Sentry’s small plan CacheFly Panel Mark Ericksen Eric Oestrich Michael Ries Joined by Special Guest: Brujo Benavides Summary Brujo Benavides shares what he is working on right now and how his team feels about working in both Elixir and Erlang. He shares what his team has gotten out of using Elixir and what he thinks his team will get out of Elixir in the future. The panel discusses property-based testing and Fred Hebert’s book on property-based testing. Brujo shares use cases that would benefit from property-based testing and those that would benefit from unit testing. The panel considers dialyzer and shares their experiences using it in their code. Brujo explains how he chooses which tools to use for a project. Inaka is discussed; Brujo explains what they are all about and how to join. Upcoming conferences that Inaka is organizing is outlined and details on how to buy tickets are given. Links EMx 031: Lessons from a Decade of Erlang with Brujo Benavides https://elixir-lang.org/docs.html EMx 047: Property Based Testing with PropEr and Fred HebertMy Take on Property-Based Testing for Erlang & Elixir https://github.com/proper-testing/proper Help Dialyzer Help You!http://erlang.org/doc/man/dialyzer.html http://erlang.org/doc/man/dialyzer.html#gui-0 http://erlang.org/doc/apps/dialyzer/dialyzer_chapter.html#dialyzer_gui Erlang Oddities - Brujo Benavides https://github.com/inaka/elvis https://hex.pm/packages/dialyxir https://github.com/inaka https://github.com/inaka/guidelines https://spawnfest.github.io/ https://www.elixirconf.la/ https://twitter.com/elbrujohalcon https://github.com/elbrujohalcon https://www.facebook.com/Elixir-Mixhttps://twitter.com/elixir_mix Picks Mark Ericksen: https://www.destroyallsoftware.com/talks/wat I am Mother Eric Oestrich: https://grapevine.haus/ https://github.com/oestrich/telnet-elixir Michael Ries: Foam board https://devchat.tv/elixir-mix/ Brujo Benavides: http://spawnedshelter.com/ http://artemis.cslab.ece.ntua.gr:8080/jspui/handle/123456789/15777 Special Guest: Brujo Benavides. Advertising Inquiries: https://redcircle.com/brandsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/elixir-mix--6102049/support.

Jul 9, 2019 • 54min
EMx 059: Using Rust to Scale Elixir for 11 Million Concurrent Users with Matt Nowack
Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan CacheFly Panel Mark Ericksen Josh Adams Michael Ries Eric Oestrich Joined by Special Guests: Matt Nowack Summary Matt Nowack, a developer at Discord, gives an intro to Discord and shares its origin story. The panel discusses the problems that Discord was having because of its 11 million concurrent users. Matt talks about when they knew there was a problem, how they used a runtime VM to find the problem, the tools they tried to fix the problem and how they landed on NIFs to fix the problem. The panel discusses the risks of using NIFs and how using Rust helps negate that risk. Matt discusses the reference counter in the rustler package and answers questions about using dirty schedulers. Discord developers publish many blogs and publish many open source projects; Matt shares the Discord philosophy on open sourcing and contributing to the Elixir community. Links https://github.com/discordapp/sorted_set_nifhttps://github.com/rusterlium/rustlerMatthew Nowack - ZenMonitor: Scaling Distributed Monitoring at Discord | Code BEAM SF 19https://en.wikipedia.org/wiki/Fates_Forever http://erlang.org/doc/tutorial/nif.html https://www.rust-lang.org/ https://blog.discordapp.com/using-rust-to-scale-elixir-for-11-million-concurrent-users-c6f19fc029d3 https://github.com/discordapp/sorted_set_nif https://www.erlang-solutions.com/blog/a-guide-to-tracing-in-elixir.html https://github.com/ferd/recon https://discordapp.com/jobs https://elixir-lang.org/blog/2019/06/24/elixir-v1-9-0-released/ https://github.com/ihumanablehttps://twitter.com/ihumanablehttps://www.facebook.com/Elixir-Mix https://twitter.com/elixir_mix Picks Mark Ericksen: https://www.nps.gov/grca/planyourvisit/havasupai.htm https://waterfallsofthegrandcanyon.com/havasu-falls/havasupai-waterfalls/ Josh Adams: https://sorbet.org/blog/2019/06/20/open-sourcing-sorbet Michael Ries: https://www.raspberrypi.org/products/raspberry-pi-4-model-b/ https://www.youtube.com/user/flitetest Eric Oestrich: https://podcast.smartlogic.io/ Matt Nowack: http://discord.gg/elixir https://www.destroyallsoftware.com/talks/boundaries https://en.wikipedia.org/wiki/Halt_and_Catch_Fire_(TV_series) Special Guest: Matt Nowack. Advertising Inquiries: https://redcircle.com/brandsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/elixir-mix--6102049/support.

Jul 2, 2019 • 1h 2min
EMx 058: Mint library with Eric Meadows-Jönsson & Andrea Leopardi
Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan CacheFly Panel Mark Ericksen Josh Adams Michael Ries Joined by Special Guests: Eric Meadows-Jönsson & Andrea Leopardi Summary Eric Meadows-Jönsson and Andrea Leopardi, members of the Elixir core team discuss the upcoming Mint library. They tell the panel their experience working on the core team and on the Mint library. They explain what Mint is and why people should know about it. Mint doesn’t use processes; Eric and Andrea explain why and what that means for the library. The panel discusses the benefits of using Mint and the use cases it can be applied to. Eric and Andrea give an update on how Mint is coming and explains why mint is not part of Elixir core. The panel considers building an HTTP library; Eric and Andrea share their experience. Links http://erlang.org/doc/man/httpc.html https://github.com/ericmj/castore https://elixir-lang.org/blog/2019/02/25/mint-a-new-http-library-for-elixir/#safe-by-default-https https://github.com/appcues/mojito https://segment.com/blog/introducing-centrifuge/ https://github.com/hexpm/hex https://github.com/ericmj/mint https://hexdocs.pm/mint/api-reference.html https://elixir-lang.org/blog/2019/02/25/mint-a-new-http-library-for-elixir/ https://twitter.com/inconvergent/status/1139070281971118085?s=19 https://twitter.com/emjii https://twitter.com/whatyouhide https://thewirecutter.com/reviews/best-sous-vide-gear/ https://www.facebook.com/Elixir-Mix https://twitter.com/elixir_mix Picks Mark Ericksen: https://pragprog.com/book/phoenix14/programming-phoenix-1-4 - They added Chapter 14, “What’s Next?” In it we address LiveViewPubSub 2.0, adding “telemetry” information to Phoenix and other coming additions. Josh Adams: Meat https://inconvergent.net/2019/depth-of-field/ Michael Ries: Matthew Nowack - ZenMonitor: Scaling Distributed Monitoring at Discord | Code BEAM SF 19 My New Croissant Machine Is 3D-PRINTED ! Andrea Leopardi: https://github.com/whatyouhide/after8 https://github.com/appcues/mojito https://mizage.com/shush/ Eric Meadows-Jönsson: https://inkdrop.app/https://pragprog.com/book/wmecto/programming-ectoSpecial Guests: Andrea Leopardi and Eric Meadows-Jönsson. Advertising Inquiries: https://redcircle.com/brandsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/elixir-mix--6102049/support.

Jun 25, 2019 • 1h
EMx 057: The Elixir Community with Adolfo Neto
Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan Triplebyte offers a $1000 signing bonus CacheFly Panel Mark Ericksen Josh Adams Michael Ries Eric Oestrich Joined by Special Guest: Adolfo Neto Summary Adolfo Neto shares the background behind his Elixir Brazil 2019 talk. The panel discusses other talks of Elixir Brazil 2019, the organizing of the conference, and the diversity initiative. Adolfo shares his experience in the U.S., attending meetups for other programming languages, comparing them to Elixir. The panel considers the Elixir code formatter and gives protips for using it. The best way to teach Elixir and functional programming is considered; the panel shares experiences and resources for learning functional programming. Links A Comunidade de Elixir, Adolfo Neto, Elixir Brasil 2019https://medium.com/@adolfont/elixir-brazil-2019-4de3fc06b18fhttps://twitter.com/clojure_conj?lang=enhttps://collaboration.csc.ncsu.edu/laurie/https://www.tripinfo.com/maps/NC-ResearchTriangle.htmhttps://www.meetup.com/elixircwb/https://twitter.com/elixir_brasilhttps://2019.elixirbrasil.com/https://www.eventials.com/locaweb/events/elixir-brasil/Introducing HDD: Hughes Driven Development - José Valim - Elixir Conf EU 2018https://github.com/phoenixframework/firenesthttps://github.com/phoenixframework/phoenix_pubsubhttps://ieeexplore.ieee.org/document/8116569https://en.wikipedia.org/wiki/ML_%28programming_language%29Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages (Pragmatic Programmers)https://elixirschool.com/en/https://github.com/nashfp/nashfp.github.com/wiki/erlang-schoolhttps://twitter.com/thompson_sihttps://github.com/erlware/erlang-camphttps://www.pluralsight.com/courses/meet-elixirhttps://codestool.coding-gnome.com/courses/elixir-for-programmershttps://github.com/lodash/lodashhttps://github.com/immutable-js/immutable-jshttps://hex.pm/packages/sorted_set_nifhttps://hex.pm/packages/rustlerhttps://twitter.com/TheErlef/status/1136705985442189312https://pragprog.com/book/cdc-elixir/learn-functional-programming-with-elixirhttps://twitter.com/adolfonthttps://twitter.com/elixir_mixhttps://www.facebook.com/Elixir-Mix Picks Mark Ericksen: Wintergatan - Marble Machine Josh Adams: https://blog.ploeh.dk/2017/10/04/from-design-patterns-to-category-theory/ Michael Ries: Using Rust to Scale Elixir for 11 Million Concurrent Users Eric Oestrich: Meetup Organizers Adolfo Neto: Aquarius Kiss of the Spider Woman City of GodLearn Functional Programming with Elixir: New Foundations for a New World (The Pragmatic Programmers) (English Edition)Special Guest: Adolfo Neto. Advertising Inquiries: https://redcircle.com/brandsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/elixir-mix--6102049/support.

Jun 18, 2019 • 47min
EMx 056: Sobelow and Security with Griffin Byatt
Sponsors Sentry use the code “devchat” for 2 months free on Sentry small planTriplebyte offers a $1000 signing bonusCacheFly Panel Mark EricksenJosh Adams Joined by Special Guest: Griffin Byatt Summary Griffin Byatt shares his background and what he is doing now as a security consultant for NCC Group. The panel discusses his security library, Sobelow, and their experiences using it. Griffin explains how it works, how it came into being and the goal of Sobelow. The panel wonders who contributes to Sobelow and Griffin invites anyone to contribute. Vulnerabilities that are commonly seen across all frameworks and those specific to Elixir are discussed. Elixir’s security features are considered and Griffin shares his experiences working to improve the ecosystem. Griffin gives advice and recommends resources to developers. Links Substitute Teacher - Key & Peelehttps://www.nccgroup.trust/us/https://brakemanscanner.org/https://github.com/nccgroup/sobelowhttps://github.com/nccgroup/sobelow/blob/master/lib/sobelow/traversal/file_module.exhttps://www.owasp.org/index.php/XML_External_Entity_(XXE)_ProcessingElixirConf 2017 - Plugging the Security Holes in Your Phoenix Application - Griffin Byatthttps://github.com/ueberauth/guardianhttps://oauth.net/https://github.com/riverrun/phauxthhttps://github.com/riverrun/comeoninhttps://www.owasp.org/https://www.owasp.org/index.php/Category:OWASP_Top_Ten_ProjectThe Web Application Hacker's Handbook: Finding and Exploiting Security Flawshttps://griffinbyatt.com/https://twitter.com/griffinbyatthttps://twitter.com/elixir_mixhttps://www.facebook.com/Elixir-Mix Picks Mark Ericksen: https://stedolan.github.io/jqhttps://github.com/elixir-lang/elixir/releases Josh Adams: https://librem.one/https://puri.sm/products/librem-5/ Griffin Byatt: https://www.freehaven.net/anonbib/https://www.nccgroup.trust/us/our-research/assessing-unikernel-security/?research=Whitepapers Special Guest: Griffin Byatt. Advertising Inquiries: https://redcircle.com/brandsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/elixir-mix--6102049/support.

Jun 11, 2019 • 57min
EMx 055: Params Modules for Phoenix with Kuba Subczynski
Sponsors Sentry use the code “devchat” for 2 months free on Sentry small planTriplebyte offers a $1000 signing bonusCacheFly Panel Mark EricksenMichael Ries Joined by Special Guest: Kuba Subczynski Summary Kuba Subczynski starts by introducing params modules and the story behind the pattern. The panel discusses their heuristics for deciding when to bring on a dependency and when to build something yourself. Kuba defines an embedded schema and walks through the login controller use case for the params modules. The panel discusses the highlights from the article and the benefits of using params modules. Kuba warns that this pattern isn’t for everything and discusses with the panel when to use params modules. Kuba discusses his team and what it was like adopting Phoenix and Elixir. Links https://www.sandimetz.com/https://kubasub.proseful.com/params-modules-for-phoenixhttps://github.com/vic/paramshttps://github.com/vichttps://medium.com/@alves.lcs/phoenix-strong-params-9db4bd9f56d8https://www.sandimetz.com/https://codeclimate.com/blog/7-ways-to-decompose-fat-activerecord-models/https://www.thescore.com/https://twitter.com/kubasubhttps://twitter.com/elixir_mixhttps://www.facebook.com/Elixir-Mix Picks Mark Ericksen: http://blog.erlang.org/OTP-22-Highlights/ Michael Ries: https://ferd.ca/it-s-about-the-guarantees.html Kuba Subcynski: https://proseful.com/Special Guest: Kuba Subczynski. Advertising Inquiries: https://redcircle.com/brandsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/elixir-mix--6102049/support.

Jun 4, 2019 • 1h 2min
EMx 054: Phoenix LiveView with Leandro Pereira
Sponsors Sentry use the code “devchat” for 2 months free on Sentry small planTriplebyte offers a $1000 signing bonusCacheFly Panel Michael RiesJosh AdamsMark Ericksen Joined by Special Guest: Leandro Pereira Summary Leandro Pereira starts by sharing what the Elixir community is like in Brazil. He explains what applications Phoenix LiveView works well for and those that it does not. The panel discusses why people are so excited for LiveView. JavaScript in LiveView is discussed, including where it is, what it does and Javascript fatigue in the community. Leandro shares where people can find demo projects. The panel discusses drab and why it didn’t catch on. The benefits of LiveView are discussed including, pain problems it will solve, avoiding the duplication of code, and the magic that happens in web end development. The panel shares projects they are working on or thinking of. Links https://lnasystems.com.br/https://medium.com/@ericclemmons/javascript-fatigue-48d4011b6fc4Swapping React for Phoenix LiveViewhttps://elixirforum.com/t/phoenix-liveview-is-now-live/20889/73https://elixirforum.com/tags/liveviewhttps://elixirforum.com/t/liveview-demos-examples-and-sample-apps-thread/21073https://hexdocs.pm/drab/Drab.Live.htmlhttps://elixirforum.com/t/drab-and-liveview-community-oddities/16483https://github.com/JakeBecker/vscode-elixir-ls/pullshttps://github.com/patrick-steele-idem/morphdomhttps://twitter.com/lucianparvu/status/1109087821581742080https://twitter.com/_zorbash/status/1112859727845904385https://github.com/leandrocphttps://twitter.com/leandrocesquinihttps://twitter.com/elixir_mixhttps://www.facebook.com/Elixir-Mix Picks Michael Ries: https://dudewheresmydesk.live/https://pragprog.com/book/jgotp/designing-elixir-systems-with-otp Josh Adams: https://github.com/antoyo/relmHome Warranties Mark Ericksen: Chris McCord Keynote: Phoenix LiveView - Interactive, Real TIme Apps - No need to write Javascripthttps://elixirforum.com/ Leandro Pereira: https://pragprog.com/book/jgotp/designing-elixir-systems-with-otpSpecial Guest: Leandro Pereira. Advertising Inquiries: https://redcircle.com/brandsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/elixir-mix--6102049/support.

May 28, 2019 • 50min
EMx 053: Building beautiful systems with Phoenix Contexts and DDD with Andrew Hao
Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan Triplebyte offers a $1000 signing bonus CacheFly Panel Mark Ericksen Josh Adams Joined by Special Guest: Andrew Hao Summary Andrew Hao joins the panel to discuss a recent talk he gave; he shares his background and his origin story with domain driven design. Andrew introduces an exercise that helped him called “Context Mapping”. The panel discusses how to context map and the benefits of doing this exercise with your team. Andrew explains what to model as methods and functions in context style mapping. Andrew explains aggregate roots. The panel discusses using these design tools in GraphQL and Phoenix Live View. Andrew warns against overusing these tools, leading to a discussion about how much is too much. Links ElixirDaze 2018 - Building beautiful systems with Phoenix contexts... by Andrew HaoDomain-Driven Design: Tackling Complexity in the Heart of Software Domain-Driven Design: Tackling Complexity in the Heart of Software https://www.g9labs.comhttps://twitter.com/andrewhaohttps://github.com/andrewhaohttps://www.facebook.com/Elixir-Mixhttps://twitter.com/elixir_mix Picks Mark Ericksen: http://blog.plataformatec.com.br/2019/04/whats-new-in-elixir-apr-19/ Josh Adams: https://github.com/telegramdesktop/tdesktop Andrew Hao: Domain-Driven Design Distilledhttps://www.amazon.com/Manga-Guide-Linear-Algebra/dp/1593274130Special Guest: Andrew Hao. Advertising Inquiries: https://redcircle.com/brandsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/elixir-mix--6102049/support.

May 21, 2019 • 53min
EMx 052: Production Pitfall Pontification
Sponsors Sentry use the code “devchat” for 2 months free on Sentry small planTriplebyte offers a $1000 signing bonusCacheFly Panel Michael RiesJosh Adams Summary Michael Ries and Josh Adams share mistakes they have made and common pitfalls developers fall into during production. They start by discussing Heroku and Josh explains what pushed him away from Heroku. They discuss alternatives to Heroku and give tips on finding that “deployment sweet spot”. Moving on to configuration, they discuss the most common configuration error and their favorite configuration tools. Michael and Josh share the ways they use clustering. Using their own experiences they explain how they fell into these pitfalls warning new elixir developers, giving advice and sharing career hacks. Links https://nanobox.io/https://gigalixir.com/https://hex.pm/packages/conformhttps://github.com/bitwalker/toml-elixirhttps://github.com/keathley/vaporhttps://github.com/coryodaniel/bonnyhttps://hex.pm/packages/libclusterhttp://blog.plataformatec.com.br/2019/04/whats-new-in-elixir-apr-19/https://jenkins.io/projects/jenkins-x/https://hex.pm/packages/lbm_kvhttps://twitter.com/elixir_mixhttps://www.facebook.com/Elixir-Mix Picks Michael Ries: http://www.erlang-in-anger.com/https://hex.pm/packages/reconManipulating the YouTube Algorithm Josh Adam: https://noagendaplayer.com/Advertising Inquiries: https://redcircle.com/brandsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/elixir-mix--6102049/support.

May 14, 2019 • 1h 2min
EMx 051: Nerves and Farmbot with Connor Rigby
Sponsors Sentry use the code “devchat” for 2 months free on Sentry small planTriplebyte offers a $1000 signing bonusCacheFly Panel Mark EricksenMichael RiesCharles Max Wood Joined by Special Guest: Connor Rigby Summary Connor Rigby, a core member of the Nerves team, answers the panel's questions about Farmbot and his experience working with Nerves. The panel discusses the great things about nerves. Connor shares his favorite tools for productions and testing practices. The panel discusses NervesKeys and NervesHub. Connor tells the panel what it was like working with NASA. Known for experimenting with Nerves, Connor talks about some of his projects. Links https://farm.bot/https://github.com/nerves-projecthttp://wiki.ros.org/sig/Embeddedhttps://elixirforum.com/t/sqlite-ecto2-new-maintainer/15611https://github.com/elixir-sqlite/sqlite_ecto2https://www.rosepoint.com/https://github.com/RosePointNavElixirConf 2015 - Embedded Elixir in Action by Garth HitchensMocks and explicit contractshttps://www.nerves-hub.org/https://www.media.mit.edu/projects/personal-food-computer/overview/https://smartrent.com/https://github.com/boydm/scenichttps://opencv.org/https://www.verypossible.com/https://github.com/ConnorRigby/elixir-opencvhttps://github.com/elixir-circuits/circuits_gpiohttps://github.com/elixir-circuits/https://www.grisp.org/https://beagleboard.org/blackhttps://codesync.global/media/clixir-mixing-c-and-elixir-code/https://twitter.com/pressy4piehttps://github.com/ConnorRigbyhttps://twitter.com/elixir_mixhttps://www.facebook.com/Elixir-Mix Picks Mark Ericksen: https://twitter.com/FrancescoC/status/1119596234166218754 Charles Max Wood: https://twitter.com/NervesMeetuphttps://podwrench.com/ Michael Ries: Cees de Groot - Clixir - mixing C and Elixir code | Code BEAM SF 19 Connor Rigby: https://www.gbstudio.dev/Special Guest: Connor Rigby. Advertising Inquiries: https://redcircle.com/brandsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/elixir-mix--6102049/support.