Elixir Mix is a weekly show focused on the Elixir programming community. Our panel discusses topics around functional programming, the Elixir ecosystem, and building real world apps with Elixir based tools and frameworks.

Similar Podcasts

The Rabbit Hole: The Definitive Developer's Podcast

The Rabbit Hole: The Definitive Developer's Podcast
Welcome to The Rabbit Hole, the definitive developers podcast. If you are a software developer or technology leader looking to stay on top of the latest news in the software development world, or just want to learn actionable tactics to improve your day-to-day job performance, this podcast is for you.

The Cynical Developer

The Cynical Developer
A UK based Technology and Software Developer Podcast that helps you to improve your development knowledge and career, through explaining the latest and greatest in development technology and providing you with what you need to succeed as a developer.

Flutter 101 Podcast

Flutter 101 Podcast
Weekly podcast focusing on software development with Flutter and Dart. Hosted by Vince Varga.

Episode 85: EMx 084: Beyond LiveView with Sophie DeBenedetto

December 31, 2019 49:59 53.79 MB Downloads: 0

In this episode of Elixir Mix the panel interviews Sophie DeBenedetto. Sophie spoke at both The Big Elixir and ElixirConf 2019 about LiveView. She also works at Flatiron School. Sophie starts by sharing a little about Flatiron School, what they offer and what she does for them. The panel shares their experience with the quality of graduates from Flatiron School. Sophie explains that Flatiron School is all about community and they teach their students to love learning.  Sophie discusses her talks and shares the experiences she had with LiveView that inspired her talks. She tells the panel what it was like preparing for the talks. She explains the problems she faced with her LiveView project and how she eventually fixed it.  In one talk Sophie talks about looking under the hood at LiveView. She tells the panel about this experience, this leads the panel to discuss the LiveView documentation. They consider the helpfulness of the phrase “it’s a process” in the documentation. Sophie explains how she prefers documentation to be more clear and more expansive. The panel considers the importance of expounding in the documentation as most Elixir users are new to the language. The panel discusses when the best time to learn OTP is for a developer new to Elixir.  The panel discusses Sophie’s blog post about her work in LiveView. They discuss some of their work in LiveView as well. The panel goes over some of the features they have tried in their projects and the ones they look forward to trying. Sophie ends the episode by comparing LiveView to her previous coding experiences, she describes it as a breath of fresh air.  Panelists Mark Ericksen Josh Adams Michael Ries Guest Sophie DeBenedetto Sponsors Sentry– use the code “devchat” for two months free on Sentry’s small plan CacheFly Links The Big Elixir 2019 - Beyond Liveview: Real Time Features With Liveview - Sophie DeBenedetto ElixirConf 2019 - Beyond LiveView: Building Real-Time... - Sophie DeBenedetto The Big Elixir  https://flatironschool.com/  Erlang distribution over TLS  Erlang (and Elixir) distribution without epmd  https://hex.pm/packages/libcluster  Building a Table Sort UI with Live View's `live_link`   Functional Web Development with Elixir, OTP, and Phoenix   Building beautiful systems with Phoenix contexts... by Andrew Hao  https://twitter.com/sm_debenedetto https://www.facebook.com/Elixir-Mix  https://twitter.com/elixir_mix Picks Mark Ericksen: That Sugar Film  US Legal system and jury selection Sophie DeBenedetto: Mix And Hex The Power Couple Of The Elixir Community - Todd Resudek  Rebuilding Espec: Foundations In Metaprogramming, - Bruce Park  Josh Adams: A Different Kind of Transparency  Michael Ries: Which ports does distributed Erlang use?  List of animals by number of neurons

Episode 84: EMx 083: Are Monorepos Worth It?

December 24, 2019 32:23 36.84 MB Downloads: 0

In this episode of Elixir Mix the panel discusses monorepos. They start by defining monorepos and sharing examples of what this looks like. The panelists share the pros and cons of working in a monorepo. They discuss the different projects they worked on using a monorepo and what their experience was like.    Monorepos allow for rapid development.  Any developer can pull it down and work on it. They work better for teams who are new with a new project and they are still trying to figure out where everything goes. In situations like these, quality is not a large concern but once quality is a priority monorepos make less sense.    On the other hand, monorepos make it easier for developers to forget that these applications are distinct. It also makes it easy for developers to ignore older versions of applications. The panel considers if monorepos are worth these downsides. The panel considers how monorepos work with Live View. They also discuss using an umbrella project similarly to monorepos.  Panelists Mark Ericksen Eric Oestrich Josh Adams Michael Ries Sponsors Sentry– use the code “devchat” for two months free on Sentry’s small plan CacheFly Links https://en.wikipedia.org/wiki/Monorepo  https://jenkins-x.io/  https://www.facebook.com/Elixir-Mix  https://twitter.com/elixir_mix Picks Mark Ericksen: https://thinkingelixir.com/vs-code-broken-for-elixir/  Real-Time In-Camera VFX for Next-Gen Filmmaking | Project Spotlight | Unreal Engine  Eric Oestrich: grapevine  Josh Adams: https://github.com/mijailr/askimet_ex  Michael Ries: https://empex.co/la.html

Episode 83: EMx 082: Beam Extreme! with Miriam Pena

December 17, 2019 36:07 40.37 MB Downloads: 0

In this episode of Elixir Mix the panel interviews Miriam Pena, founder of the Erlang Ecosystem Foundation. Miriam shares a little about her background and how she got into Erlang and Elixir. Miriam gave a talk at Elixir Conf about the OTP 22 release and she shares some of the exciting new features in this release.  Persistent terms are the first feature Miriam shares with the panel. After explaining what it is Miriam shares examples of the best use cases for this tool. The panel discusses the benefits of this module and how it is faster than ets tables. Next, the discuss the benefits and use cases of counters.  The panel shares what they got out of her Elixir Conf talk. It helped them relieve that the Erlang ecosystem is still alive and contributing. The encourage Elixir users to keep an eye out on OTP releases and stay on top of the tools and features that the Erlang team works so hard to provide for them.  Miriam shares a little about the Erlang Ecosystem Foundation, its goals and how they got started. She explains how listeners can get involved and what their contributions would be doing. Panelists Mark Ericksen Eric Oestrich Josh Adams Guest Miriam Pena Sponsors Sentry– use the code “devchat” for two months free on Sentry’s small plan CacheFly Links ElixirConf 2019 -- Beam Extreme: Don't Do This At Home - Miriam Pena  http://erlang.org/doc/man/persistent_term.html  http://erlang.org/doc/man/counters.html  http://erlang.org/doc/man/atomics.html  https://erlef.org/  https://members.erlef.org/join-us  https://erlef.org/stipends/  https://erlef.org/news/eef/newsletter-4  https://twitter.com/miriampena https://www.facebook.com/Elixir-Mix  https://twitter.com/elixir_mix Picks Mark Ericksen: William Shakespeare's Star Wars Trilogy  Utah Elixir Meetup: 2019-11 Code Poll on Elixir in Docker  Eric Oestrich: https://www.lonestarelixir.com/ https://codesync.global/conferences/code-beam-sf/  Miriam Pena: http://blog.erlang.org/persistent_term/  Code Beam SF Josh Adams: Guitars

Episode 82: EMx 081: Discussing Deployment

December 10, 2019 51:28 55.03 MB Downloads: 0

In this episode of Elixir Mix the panel has a conversation about a few things they have been thinking about. First, they shout out to anyone who would love to chat about config change callbacks. Then they dive into deployment discussing the updates that have happened this year. They share their experiences with the changes and compare the Elixir release to Distillery.  There are many options for deployment and they discuss some of the ones they have used. They consider services and do it yourself options. The panel shares lessons learned through their deployment experiences and give pro-tips for beginners and those new to Elixir.  The next topic they discuss is hot code reload. Michael shares his fascination with this practice and explains what it is. The panel discusses the possibilities and use-cases for hot code reload. Hot code upgrade is also discussed.  Panelists Mark Ericksen Michael Ries Eric Oestrich Sponsors Sentry– use the code “devchat” for two months free on Sentry’s small plan CacheFly Links grapevine  Deploying with Docker  https://hexdocs.pm/phoenix/heroku.html  https://www.heroku.com/  https://cloud.google.com/kubernetes-engine/  https://www.ansible.com/  https://gigalixir.com/  deploy.sh  Running migrations  release_tasks.ex  Configuration and releases  mix release  observer_cli  Erlang: The Movie  Using Erlang Distribution to test hardware  The Athens Affair  ElixirConf 2018 - Docker and OTP Friends or Foes - Daniel Azuma  Richard Carlsson - The art of the live upgrade - 10 yrs of evolving a live system | Code BEAM SF 19  https://www.facebook.com/Elixir-Mix  https://twitter.com/elixir_mix Picks Mark Ericksen: Hot Rod   Install Elixir using asdf  Michael Ries: https://twitter.com/fhunleth/status/1195524113617637376  scenic sensor  Eric Oestrich: Elixir Wizards 

Episode 81: EMx 080: The Big Elixir Favorites

December 03, 2019 31:32 35.77 MB Downloads: 0

In this episode of Elixir Mix the panel syncs up by discussing The Big Elixir Conference, their favorite talks and what they are working on. The first talk they discuss is Scott Southworth’s talk about medical messaging and the impressive work he does with the HL7 parser.  Next, they discuss Ben Church’s talk about business logic where he talks about leex and yecc. The panel discusses leex, yeccs and their own work with parsers. Cory O’Daniel’s talk on Kubereneters the panel found particularly funny and interesting. Elixir Mix’s very own Eric Oestrich was the keynote speaker at the talk, he summarizes his talk for the panel.The Live View talk given by Sophie DeBenedetto is discussed as well and the panel shares their biggest take away from the talk.    The panel discusses a little of what they have been working on. They ask Eric about his Ponchbrella project. He explains what it is and how it works. Using this hybrid of poncho and umbrella projects for grapevine made more sense to him. He invites everyone to take a look as grapevine is open source. The episode ends as the panel praises Elixir’s flexibility and other great qualities.  Panelists Mark Ericksen Josh Adams Eric Oestrich Sponsors Sentry– use the code “devchat” for two months free on Sentry’s small plan ElixirCasts | Get 10% off with the promo code "elixirmix" CacheFly Links https://www.thebigelixir.com/  https://hexdocs.pm/elixir_hl7/HL7.Query.html  https://github.com/HCA-Healthcare/elixir-hl7  http://erlang.org/doc/man/leex.html  http://erlang.org/doc/man/yecc.html  https://github.com/ympons/expreso  RegEx match open tags except XHTML self-contained tags  https://github.com/elm/parser  Wilford Brimley On His Diabetes - Original Video  Wilford Brimley Diabeetus Remix  https://twitter.com/knewter/status/1192831261624164352  https://github.com/oestrich/grapevine/tree/master/apps  https://www.facebook.com/Elixir-Mix  https://twitter.com/elixir_mix Picks Mark Ericksen: https://github.com/elixir-lang/elixir/releases/tag/v1.9.3  Josh Adams: https://jenkins-x.io/  Eric Oestrich: https://podcast.smartlogic.io/

Episode 80: EMx 079: Oban with Parker Selbert

November 26, 2019 41:53 45.64 MB Downloads: 0

In this episode of Elixir Mix the panel interviews Parker Selbert. Parker lives in Chicago and runs a consultancy with his wife. He joins the panel to discuss a library that he wrote, Oban. Parker starts by explaining what Oban is and why he wrote it. Oban is a way to run reliable background jobs by persisting them in the database. Oban is akin to Sidekick, Parker explains, he wanted something similar to Sidekick for Elixir. He made a few improvements including moving it to Postgres from Redis. He shares the common problems found using Redis and how easy Postgres was to use for this library.  The panel asks Parker about his Oban Recipes. Parker explains why he wrote the recipes and what some of them contain. After releasing Oban he received many questions asking about how to use Oban. Parker took the most common questions and wrote 7 blog post outlining how to use Oban.  Parker shares his favorite features found in Oban and walks the panel through its architecture. The panel asks him about the maturity and usage of the library. Parker tells them that the usage has been steadily climbing. The episode ends with the panel discussing the Oban UI and how it works.   Panelists Mark Ericksen Josh Adams Eric Oestrich Guest Parker Selbert Sponsors Sentry– use the code “devchat” for two months free on Sentry’s small plan ElixirCasts | Get 10% off with the promo code "elixirmix" CacheFly Links https://github.com/sorentwo/oban https://oban.dev/ Oban Recipes Part 1: Unique Jobs Oban Recipes Part 2: Recursive Jobs Oban Recipes Part 3: Reliable Scheduling Oban Recipes Part 4: Reporting Progress Oban Recipes Part 5: Batch Jobs Oban Recipes Part 6: Expected Failures Oban Recipes Part 7: Splitting Queues Oban — Reliable and Observable Job Processing Oban UI: Private Beta Github Starts Won’t Pay Your Rent https://twitter.com/sorentwo?lang=en Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages  https://github.com/sorentwo/kiq  https://www.postgresql.org/docs/current/sql-notify.html  https://www.postgresql.org/docs/current/sql-listen.html  https://www.postgresql.org/docs/9.5/sql-select.html  https://www.postgresql.org/docs/9.4/explicit-locking.html  https://github.com/sorentwo/oban/blob/master/lib/oban/pruner.ex  https://github.com/elixirs/faker  https://oban.dev/#sign-up  https://www.facebook.com/Elixir-Mix  https://twitter.com/elixir_mix Picks Mark Ericksen: https://twitter.com/CodeWisdom/status/1189602991701184512  Josh Adams: How to write a commit message Eric Oestrich: Godzilla: The Showa-Era Films, 1954–1975  Parker Selbert: The Rust Programming Language Copper Fox Distillery

Episode 79: The MaxCoders Guide To Finding Your Dream Developer Job

November 20, 2019 14:30 13.95 MB Downloads: 0

"The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood is available on Amazon. Get your copy here today only for $2.99!

Episode 78: EMx 078: Phoenix Phrenzy with Nathan Long

November 18, 2019 52:37 55.86 MB Downloads: 0

In this episode of Elixir Mix the panel interviews  Nathan Long about Pheonix Phrenzy. Nathan explains what Pheonix Phrenzy is and what the contest is all about. The panel explains how exciting it is for everyone to see what Live View can really do. With all the submissions open-sourced, the consider what a great resource the submissions are for those learning to use Live View.  Nathan explains his motivations behind Pheonix Phrenzy. He explains what they learned from this contest and what they may do in future contests. Nathan shares how wonderful it was to work with everyone at Dockyard on Pheonix Phrenzy. He explains how the competition worked, the role of the VIP judges and how the site was designed to make the contest as fair as possible.  The top three submissions are shared, the panel is impressed by how different each of the projects are. Nathan shares all the amazing things developers get when they use Live View. The panel considers when to use Live View. The episode finishes as Nathan shares what he would like to see in the future versions of Live View. Panelists Mark Ericksen Josh Adams Michael Ries Guest Nathan Long Sponsors   Sentry– use the code “devchat” for two months free on Sentry’s small plan ElixirCasts | Get 10% off with the promo code "elixirmix" My Angular Story CacheFly Links https://phoenixphrenzy.com/results https://twitter.com/sleeplessgeek http://nathanmlong.com/blog/ Ranking Programming Languages by GitHub Users   GOTO 2019 • The Soul of Erlang and Elixir • Saša Jurić  https://twitter.com/ScenicFramework/status/1189646397147992064  https://hexdocs.pm/scenic/Scenic.Components.html  https://www.facebook.com/Elixir-Mix  https://twitter.com/elixir_mix Picks Mark Ericksen: https://alicevision.org/  https://github.com/alicevision/meshroom  Josh Adams: Jesus is King by Kanye West  Michael Ries: Scenic Components Nathan Long: https://apps.ankiweb.net/ https://www.owasp.org/index.php/SameSite 

Episode 77: EMx 077: Elixir at PepsiCo eCommerce with Jason Fertel

November 12, 2019 44:12 47.74 MB Downloads: 0

In this episode of Elixir Mix the panel interviews Jason Fertel who runs the marketing automation team at PepsiCo eCommerce. Jason shares the story of bringing Elixir to PepsiCo eCommerce and explains how it became their go-to for application development.   Jason explains what they do at PepsiCo eCommerce. They build software to optimize everything from supply chain to marketing and sales for big companies in eCommerce like Amazon.com and InstaCart. He explains the difference between what they do at PepsiCo eCommerce and other CPG’s.  The panel asks Jason about what Elixir has brought to the table at PepsiCo eCommerce. He explains why he chose Elixir when he started out as a one-man development team. Elixir is powerful, straight forward and easy to learn. It is efficient and has everything you need out of the box. Jason shares how using Elixir has also had a positive effect on hiring. The panel considers how using Elixir has benefitted hiring at their companies as well.  The episode ends with Jason outlining their stack and sharing the tools they are using. He also overviews some of the projects they are working on, including sales and marketing automation, end to end supply chain optimization and something exploratory with IoT. They try to foster a culture of exploration and innovation at PepsiCo eCommerce and Jason talks about a Nerves project they are working on to alert consumers when it is time to purchase more snacks.  Panelists Mark Ericksen Michael Ries Guest Jason Fertel Sponsors   Sentry | use the code “devchat” for two months free on Sentry’s small plan ElixirCasts | Get 10% off with the promo code "elixirmix" CacheFly ________________________________________________________________________________________________________________________ "The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood will be out on November 20th on Amazon.  Get your copy on that date only for $1. ________________________________________________________________________________________________________________________ Links https://www.scaledagileframework.com/  https://www.erlang-solutions.com/  https://elixir-lang.org/getting-started/mix-otp/dependencies-and-umbrella-projects.html  https://github.com/absinthe-graphql/absinthe  https://druid.apache.org/  https://nerves-project.org/  https://beagleboard.org/bone  https://www.keycon.info/ https://twitter.com/Fertel  https://www.pepsicojobs.com/main/jobs?keywords=elixir&page=1  https://twitter.com/fertel https://github.com/fertel https://www.facebook.com/Elixir-Mix  https://twitter.com/elixir_mix Picks Mark Ericksen: https://thinkingelixir.com/elixir-in-vs-code/  Michael Ries: https://github.com/boydm/scenic  Spiff  Jason Fertel: http://hilolife.com/  https://maivino.com/savethepinot   

Episode 76: EMx 076: MUD Development and Grapevine

November 05, 2019 36:20 39.95 MB Downloads: 0

On this episode of Elixir Mix the panelists interview Eric Oestrich, one of the regular panelists for the show. Eric is a developer at SmartLogic where he works with Elixir and recently has been working with deployments. He has a project called Grapevine which is similar to steam but for text games. Mark opens up the discussion by asking Eric to talk about his game ExVenture which is a MUD game. MUD stands for multi user dungeon and ExVenture is a multi user version of a text adventure game from 1978 called Dungeon. He shares more details of the game and how it’s played. Erit explains that Grapevine was spawned from ExVenture and Mark asks him to expound more on Grapevine.  ExVenture is open source and it is an application that is currently running in production. This provides opportunity for those not interested in making or playing a MUD to get involved and work on a project. Eric also goes into detail about the livestreaming he does and how to get involved. Since the project is open source, Eric is able to do development live, on screen and this allows the viewer to see the development process first hand and watch Eric work through challenges in the code. The topic then shifts to some of the features that are in Grapevine. Eric details some of the OTP style concepts used, the types of servers used and how they’re used, and how telnet sessions are maintained for connecting. The Elixir Mix panelists also discuss how this application is deployed. The application is on DigitalOcean with 2 dedicated cores and he uses Docker to build the releases. Eric also explains how he uses scripting with his releases and how his deployments work. The panelists also discuss how Eric is using Docker for releases but not on the server and why he’s doing deployments the way he is. The last topic covered by the elixir experts is statistics. They cover the metrics section in Grapevine, how he uses Telemetry events, and other methods he uses to gather metrics Panelists Mark Ericksen Josh Adams Erik Oestrich Sponsors Sentry | Use code “devchat” for two months free on Sentry’s small plan.  ElixirCasts | Get 10% off with the promo code "elixirmix" Links SmartLogic Phoenix Erlang MUD Grapevine ExVenture Telemetry SmartlogicTv Twitch SmartlogicTv Youtube Local Clusters with epmd by Erik Oestrich EPMD man page Hello, production Grapevine Stats Grapevine Metrics Github Eric Oestrich Twitter Eric Oestrich Grapevine Eric Oestrich Github Docker DigitalOcean Picks Josh Adams Radiohead Glastonbury Festival Linux of 2000 article Mark Ericksen TheOatmeal Comic: Running Eric Oestrich Squabble Playing the violin and cello  

Episode 75: EMx 075: Live View Implementation With Jeff Kreeftmeijer

October 29, 2019 34:18 37.88 MB Downloads: 0

Jeff Kreeftmeijer works at Appsignal where they create a tool for application monitoring that works in Ruby and Elixir. He works specifically with integrations focusing in Elixir and also writes articles for their Elixir and Ruby newsletters. Jeff started as a Ruby programmer but had an interest in functional programming which lead him to gain an interest in Elixir. When he started at Appsignal they were already considering an Elixir integration and that made it a perfect fit.  Jeff then shares more details about his involvement in Appsignal’s two newsletters called Ruby magic and Elixir alchemy, both of which are aimed at more experienced programmers. He also details his experience with articles that he wrote on Live Share and how he came to write them. The panelists also introduce the Go game that is written about in these articles. The next topic covered by the Elixir experts is the Go game Live View implementation mentioned in Jeff’s articles. The panelists draw comparisons of how something similar could have been implemented in React. Jeff highlights that he doesn’t have to write JavaScript and doesn’t have to worry about state either. However, in part 1 of Jeff’s current implementation he used a struct to track the state. In part 2 of the implementation, where he implements the code rule, he has another struct that tracks the game.  The panelists then discuss how Jeff maintains the game state. In the first version of the implementation he keeps it in the Live View process and when he implemented multiplayer he had to move the game state to a GenServer. He also shares some of the details of why using a GenServer is necessary for multiplayer. Jeff is then asked what his experience was like using a dynamic supervisor and he shares the technical ideas of how this helped him in the project.  Next the conversation moves to how the game is able to communicate moves between players to each other. The issue with connecting two sessions to the same Live View is that one player won’t be updated if the other makes a move. Jeff details how using a Pub/Sub helps to overcome this issue. The panelists also discuss ideas of how the game could be implemented in a multi server instance.  Jeff shares how his article series still has many more installments that can come out, specifically citing that they haven’t even covered assigning player connections with different player callers. This kind of functionality would handle the assignment of which players controlled which pieces. Jeff closes with highlighting the convenience that comes from using the libraries that they are using as they natively come with technologies they find helpful for building out an interactive, collaborative project. Lastly, the panelists discuss what Jeff is currently doing to work more with these same technologies. Jeff shares that he has a side project where he tries to build a fish tank with artificial intelligence and how he uses Live View for this project.  Panelists Mark Ericksen Eric Oestrich Josh Adams Michael Ries   Guest Jeff Kreeftmeijer Sponsors Sentry.io | Use code “devchat” for two months free. ElixirCasts | Get 10% off with the promo code "elixirmix"  JavaScript Jabber Links Appsignal.com Live View article Computers and Go Building the Go Game in Elixir: Time Travel and the Ko Rule Multiplayer Go with Elixir’s Registry, PubSub and Dynamic Supervisors Dynamic Supervisor PubSub Hayago Github GenServer Functional Web Development With Elixir, OTP, and Phoenix Asciiquarium Terminal Asciiquarium The NeuroEvolution of Augmenting Topologies User Page The NeuroEvolution of Augmenting Topologies Jeff Kreeftmeijer Twitter Jeff Kreeftmeijer.com   Picks Josh Adams Haskell Parser Eric Oestrich Dragon Quest 11 Wingspan Michael Ries Fireball Island Observer CLI   Mark Ericksen Acquired   Jeff Kreeftmeijer Go (game) Mansions of Madness Alphago Documentary

Episode 74: EMx 074: Inky Displays With Lars Wikman and Emilio Nyaray

October 22, 2019 52:46 55.5 MB Downloads: 0

This episode of Elixir mix opens with Lars Wikman and Emilio Nyaray sharing how they came to be working together on a project called Inky. Inky is an E-Ink display that works with Nerves and Elixir. The project started when Lars wanted to use the Inky device from Nerves but didn’t want to install Python to do it. Emilio wanted to join because he found it fascinating to be able to control this device with Elixir. Lars and Emilio share some details of how this project came about and how it works.  The inky comes in multiple sizes with the smaller pHAT display being about the size of a business card and the Inky wHAT being closer to the size of a Raspberry Pi. Lars shares that one of the biggest gotchas with these displays is the refresh rate. Once the pixels are changed the device can be turned off and still remain the same because they are physically changing. The panelists highlight that very little troubleshooting time had to go in to the Nerves portion of the project. Lars describes how he began looking at using Nerves just after it was announced and how he decided to use it in this project. He also shares how he wants to take on a project to put together a cross stitch of a bigger display that can change each day. One way to do this is by putting multiple pHATs together but Lars would prefer to use a wHAT. The conversation then moves to Emilio sharing his journey to the Inky project. He has been working with Erlang professionally for a year. Ever since he worked with a startup in 2012-2013 where they used Erlang, he has had a strong desire to work with functional programming. This desire eventually lead him to work with Elixir and Phoenix to write a timesheet application as a consultant. When he got in to working with Nerves he borrowed a touchscreen at work and was blown away by how it worked. Emilio also details an audio controller interface side project that he is currently working on. The panelists then talk about the elixir community, what they love about it, the friendliness of the small community, and some individuals that have had an impact on them. The discussion then moves on to the profiling tools eprof, fprof, and cprof. These tools are built into the Erlang Ecosystem. Eprof is a time profiling tool. Fprof is a time profiling tool as well, but it uses trace to file for minimal performance impact. Cprof is a simple call count profiling tool. Emilio shares how he came to be familiar with these, how he used them, and the benefits he saw in his application from using these tools. These profiling tools are also available in Elixir. The panelists also discuss eflame which is a flame graph profiling tool that is very easy to use. Emilio and Lars detail how they used a low dependency approach to be able to fake a display on the desktop for Inky and develop on the desktop.    Panelists Mark Ericksen Josh Adams Michael Ries   Guest Lars Wikman Emilio Nyaray Sponsors Sentry.io use code “devchat” for two months free on Sentry’s small plan Adventures in .NET Ruby Rogues Links Lars’ writing on Inky Nerves E-Ink Inky pHAT Inky wHAT Raspberry Pie Arduino Elixir Forum E-Ink Display Phoenix Elixir Circuits Mysensors.org Connor Rigby Github Instinct.vet Opensoundcontrol.org Joe Arms Controlling Sound With OSC Codesync.global Boyd Multerer Github Erlang eprof documentation Erlang fprof documentation Erlang cprof documentation Eflame Github Lars Wikman: @lawik on twitter Emilio Nyaray: @nyaray on twitter Emilio Nyaray Github   Picks Josh Adams autofs Kodi.tv Michael Ries Jehu Garcia youtube Mark Ericksen FizzBuzz Enterprise Edition Logitech G29 Driving Force   Lars Wikman Scenic Layout-O-Matic Nerves Input Event Library

Episode 73: EMx 073: Application Monitoring Using Telemetry With Arkadiusz Gil

October 15, 2019 40:33 43.68 MB Downloads: 0

This episode of Elixir Mix features Arkadiusz Gil. Arkadiusz is a software engineer at Erlang Solutions. He is also a member of the observability working group of the Erlang Ecosystem Foundation. The purpose of this working group is to nurture different areas of the community to maintain libraries, improve tooling, and create documentation. He became a member of this group because of his work on Telemetry. The panelists discuss the background of Telemetry and Arkadiusz explains how it was originally written in Elixir and why they decided to switch over to Erlang. Arkadiusz explains how he became involved in Elixir and Erlang. When Mark asks why he prefers Elixir to Erlang he responds with explaining his affinity for the Elixir syntax and tooling that’s available.  The conversation then moves to how Telemetry came about. Telemetry started with the goal of creating a tool for monitoring Elixir applications but the creators had no idea what that application would be like. Arkadiusz then describes how he did an exercise with colleagues to identify the specific needs for such an application and how to implement it. The panelists discuss how Telemetry is integrated. They also discuss how to get started with Telemetry metrics and Arkadiusz shares some of the details of how the monitoring service works.  The next topic that the Elixir experts cover is how to monitor business data and activity. Arkadiusz explains the mechanism that can be used to attach to events in a custom way to retrieve the exact data that the user needs. He shares that Telemetry can really be used any time a user wants to expose a specific piece of data at runtime. Mark asks how this attaching works and this leads to a deeper technical discussion on how Telemetry attaches a mechanism to the application and returns that data, as well as how the listeners work when an event is fired and new data is sent to it.  The panelists then discuss how OpenCensus works with Telemetry. OpenCensus is a project created to culminate API’s that can be used in different languages to create metrics and other data. Arkadiusz shares a hypothetical example of how this works and how Telemetry works with it. The observability working group has helped contribute to OpenCensus. OpenCensus has a smooth integration and is built to run as smooth as possible. A user can use OpenCensus to build metrics based off of Telemetry events. The OpenCensus project is now called OpenTelemetry and it is a merger of OpenCensus and OpenTracing. Finally the Elixir experts cover real world examples of users implementing Telemetry as well as how to get involved with the observability working group and Telemetry. For the observability working group it is best to reach out to them telling them what kind of tooling that would be great to work across the ecosystem and other help they need. One of their goals is to put together a set of best practices for monitoring services.  Panelists Mark Ericksen Eric Oestrich Josh Adams   Guest Arkadiusz Gil Sponsors Sentry.io Adventures in DevOps Adventures in Angular   Links Erlang Solutions Observability Working Group Erlang Ecosystem Foundation Erlang  Telemetry Telemetry.Metrics AWS CloudWatch Events Programming Elixir OpenCensus OpenTelemetry OpenTelemetry.io OpenTracing arkgil on GitHub  Exometer - Erlang Implementation Package Prometheus.ex Picks Eric Oestrich UCL parser in Elixir Josh Adams The Depths of Deep Space Nine - YouTube Mark Ericksen How to Create Desktop Application With Elixir Terminal command “lscpu” Arkadiusz Alchemist’s Code Philosophy of Software Design The Anatomy of Next

Episode 72: EMx 072: People-Centered Solutions with Travis Elnicky

October 08, 2019 47:53 50.61 MB Downloads: 0

In this week’s episode of Elixir Mix the panel interviews Travis Elnicky, software architect at Podium. Podium is Utah based company that has been using Elixir for three years. Travis explains Podium’s history and its experience adopting Elixir.  When Travis started at Podium they were a small startup with, he was their 16th employee. They were using Ruby on Rails and focusing on collecting reviews for local businesses. When they saw a need for a messenger application, they tried a few solutions choosing Elixir because of the familiarity they felt coming from a Rails background. After switching to Elixir, Podium grew rapidly. Now Podium has 700 employees, 130 of whom are engineers.  Travis discusses with the panel how things are run over at Podium. Their teams are aligned around products and features. This makes all their engineers' full-stack developers. Podiums teams run with a lot of autonomy, they also have teams that help with internal tooling to tie the products together. The panel is curious about the recruitment process at Podium. Travis explains that their hiring is mostly based on referrals, which they found has been pretty reliable. The panel discusses the value of referrals incentives programs. By hiring referrals they save money placing ads and going to fairs. Referrals tend to be more aware of the job they are going into and already have a friend to help them transition jobs and frameworks. Next, Travis walks through what it is like for a new hire at Podium. After onboarding, the new hire sits down with their team lead and codes, taking it all the way to production. The panel considers the advantages of new hires diving in, whether or not they know Elixir. It introduces them to the work they will be doing, gives them confidence by contributing to the team, and the one on one attention shows them the culture of unity at Podium. Podium has a lot to offers its developers. It has a team whose focus is internal developer experience. Podium maintains a focus on learning and growing in Elixir. They offer training for those who are unfamiliar with Elixir. Once per week, they do a Nerd Lunch, the company buys them all lunch while Podium engineers teach their fellows about software.  Elixir 101 training also happens every week and is also taught by Podium engineers. Allowing Podium engineers to teach gives learners a chance to teach which in turn helps them learn. It also allows engineers to network outside their assigned teams. The panel considers how people-centered all the solutions are at Podium.  The panel wonders if Podium ever uses outside trainers or services. Travis shares the wonderful experience they have been having by using Plataformatec’s Elixir Development subscription. He says it has been incredible to be able to jump on a call, talk to them and get some feedback. Using the subscriptions allows their senior developers to level up, while the other classes and lunches helps the junior developers to level up.  Podium recently sponsored ElixirConf and send a big crowd to a few different conferences every year. Travis explains the value of the conference is not only in the education received by the engineers who get to go. At Podium, the engineers who go to the conferences then come back and present what they learned at the conference, sharing what they think Podium could apply to their stack. This makes the conferences valuable to the entire team.  The last topic the panel discusses in the episode is the CI at Podium. The panel explains that most of the feedback for a new developer should be coming from the CI. Travis explains how the CI is set up. When he started they were using Github and has moved to Gitlab. They use credo checks, unit tests, sobelow, and dialyzer.  The panel asks about Elixir formatter and how they check format in the CI. Travis explains what he likes about credo and gives tips for running it. The panel has Travis introduces sobelow and what it does for Podium. Dialyzer is considered by the panel, they explain the trade-off of using dialyzer while sharing times that it had saved their bacon. Panelists Mark Ericksen Eric Oestrich Michael Ries Guest Travis Elnicky Sponsors   Sentry– use the code “devchat” for two months free on Sentry’s small plan Sustain Our Software Views on Vue CacheFly Links Two Years of Elixir at Podium: Thoughts https://www.podium.com/  http://pages.plataformatec.com.br/elixir-development-subscription  https://docs.gitlab.com/ee/ci/  https://github.com/rrrene/credo/  https://github.com/nccgroup/sobelow  https://hex.pm/packages/dialyxir  https://hexdocs.pm/mix/master/Mix.Tasks.Format.html  https://github.com/elixir-lang/elixir/blob/master/lib/elixir/lib/calendar.ex https://github.com/jeremyjh/dialyxir#explanations  https://www.linkedin.com/in/travis-elnicky-4a3b2844/ https://twitter.com/_elnicky https://twitter.com/podium_eng?lang=en https://www.facebook.com/Elixir-Mix  https://twitter.com/elixir_mix Picks Mark Ericksen: https://thinkingelixir.com/  Eric Oestrich: Links Awakening  Michael Ries: Hacktoberfest https://nats.io/  Travis Elnicky: Designing Elixir Systems with OTP  https://www.acquired.fm/

Episode 71: EMx 071: The Problem with Dialyzer with Chris Keathley

October 01, 2019 47:32 50.14 MB Downloads: 0

In this week’s episode of Elixir Mix the panel interviews Chris Keathley about Norm and his recent talk at ElixirConf. Chris is currently working at Bleacher Report, working mostly on backend systems. The panel starts by complimenting his presentation skills and asking him about his dislike for dialyzer.    Chris share the many problems he has with dialyzer. Dialyzer takes a lot of time and has crappy ergonomics. While it tells you a lot about an Erlang system that benefit doesn’t extend to Elixir systems. Neither doesn’t understand protocols. Mostly he feels that most type algebras don’t allow for growth, making changes and making the breaking changes. Explaining that type systems all have their costs and benefits, he feels that you don’t see the benefits of dialyzer until your system is up and running.   The panel wonders about Norm, a library written by Chris. Chris explains what it is and what its aims are. He wrote the library to solve some of the problems seen with dialyzer and other problems he was having at work. It is mostly for validating data. He wanted to be able to put checks in where ever he wanted and to make it very hard to break systems. Norm lets you describe data in your system, by taking an arbitrary predicate and making it into a spec. Chris explains how this works and how it will not make any changes until you tell it to. He shares some of the other features offered by Norm.    The sweet spot for using Norm is the next subject broached by the panel. Chirs explains that Norm fits well into the boundaries of systems, this is the most obvious place and the best place to start. The least intuitive way Chris has used Norm is to specify the options you need to pass to gen servers. He explains that it is not the most obvious use for Norm but it has been really helpful with the API.   Next, the panel asks about changesets and how that works with Norm. Chris explains that changesets are very specific while Norm allows more freedom. The biggest difference between the two is that Norm won’t do casting for you. They intentionally built Norm that way because of the way Bleacher Report uses string and atom keys.    In his talk, Chris explains the concept of design by contract. It means that for every function that you have you can specify preconditions and postconditions. Preconditions are things that have to be true prior to calling the function. Postconditions are things that have to be true after the functions been called. Right now Norm doesn’t provide preconditions and postconditions which provides a way to avoid some of the more expensive costs in production.   Chris uses Norm in all his opensource projects and in projects at work. He shares the benefits he has seen. He believes that most systems will see benefits from Norm if they have room to grow. In his experience, every time they run into something new and think they may need to expand or change Norm, they find that Norm already has everything they need. Chris asks listeners who want to help contribute to Norm to try it out and to give him feedback. Panelists Mark Ericksen Eric Oestrich Josh Adams Guest Chris Keathley Sponsors   Sentry– use the code “devchat” for two months free on Sentry’s small plan Adventures in Blockchain React Round Up CacheFly Links ElixirConf 2019 - Contracts for Building Reliable Systems - Chris Keathley https://github.com/keathley/norm EMx 040: Elixir Outlaws and Adopting Elixir with Chris Keathley EMx 003: Chris Keathley https://keathley.io  https://twitter.com/chriskeathley?lang=en https://elixiroutlaws.com/  https://en.wikipedia.org/wiki/Design_by_contract  https://www.facebook.com/Elixir-Mix  https://twitter.com/elixir_mix Picks Mark Ericksen: zFRAG  Eric Oestrich: War Machine  Josh Adams: "Unison: a new distributed programming language" by Paul Chiusano https://github.com/unisonweb/unison  Chris Keathley: Daniels' Running Formula