

Thinking Elixir Podcast
ThinkingElixir.com
The Thinking Elixir podcast is a weekly show where we talk about the Elixir programming language and the community around it. We cover news and interview guests to learn more about projects and developments in the community.
Whether you are already experienced with Elixir or just exploring the language, this show is created with you in mind. We discuss community news, Functional Programming, transitioning from OOP, coding conventions, and more.
Guests visit the show to help challenge our assumptions, learn about new developments and grow in the process.
Subscribe to join us on this journey!
Whether you are already experienced with Elixir or just exploring the language, this show is created with you in mind. We discuss community news, Functional Programming, transitioning from OOP, coding conventions, and more.
Guests visit the show to help challenge our assumptions, learn about new developments and grow in the process.
Subscribe to join us on this journey!
Episodes
Mentioned books

May 17, 2022 • 44min
99: Slipstream and Tree-Sitter with Michael Davis
Michael Davis explains Slipstream, a Phoenix channels websocket client library that enables Elixir applications to become a client of a Phoenix channel on another server. Out of this work, an underlying websocket library was created built on mint, which has now officially become part of the mint project. We talk about other libraries in the same space and why Slipstream was created. Michael was also involved in the recent Tree-Sitter Elixir work that Github celebrated and he shares some insight into that work as well!
Show Notes online - http://podcast.thinkingelixir.com/99
Elixir Community News
https://twitter.com/remote_ruby/status/1522546728922226691 – José Valim was a guest on the Remote Ruby podcast talking about his history as a Rails core contributor and the creation of Elixir.
https://share.transistor.fm/s/7dc8e2e3 – Remote Ruby podcast
https://github.com/kipcole9/image – New image-processing library called Image that leverages libvips though NIF bindings.
https://github.com/libvips/libvips
https://github.com/lucasvegi/Elixir-Code-Smells – Elixir Code Smells project
https://github.com/lucasvegi/Elixir-Code-Smells/blob/main/code_smells.livemd – Elixir Code Smells Livebook notebook
https://litestream.io/ – Litestream project for SQLite replication
https://fly.io/blog/all-in-on-sqlite-litestream/ – Ben Johnson joined Fly.io and will continue work on Litestream
David's wife had a baby girl! Congrats! Now has 2 kids.
Next episode is 100 and will be the final visit José Valim in our series. Also covers future development.
Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com
Discussion Resources
https://github.com/NFIBrokerage/slipstream – Slipstream Phoenix channels websocket client library
https://github.com/NFIBrokerage/mint_web_socket – Separate library that uses Mint and supports websockets.
https://github.com/NFIBrokerage/slipstream/blob/main/guides/implementation.md
https://github.com/Azolo/websockex – Pure Elixir websockets implemented as a special OTP process
https://github.com/ninenines/gun – Popular Erlang HTTP/WebSocket client library from the same group of dependencies as cowboy, the underlying HTTP/WebSocket server for Phoenix
https://github.com/jeremyong/websocket_client – WebSocket client that underlies phoneix_client and phoenix_gen_socket_client. Appears to be inactive and it no longer compiles on OTP25.
https://hex.pm/packages/phoenix_channel_client – Retired library by Justin Schneck
https://hex.pm/packages/phoenix_client – by Justin Schneck “Elixir Phoenix Client for Channels”
https://github.com/J0/phoenix_gen_socket_client – Another Phoenix Channel client
https://elixirforum.com/t/slipstream-a-slick-elixir-websocket-client-for-phoenix-channels/37456 – ElixirForum post on Slipstream
https://github.com/nerves-hub/nerves_hub_link – A more prominent dependent of Slipstream. Slipstream is used as the default communication system for embedded devices to talk to the nerves hub (which provides firmware updates)
https://twitter.com/whatyouhide/status/1521381183229210624 – mint_web_socket was just moved under the elixir-mint organization
https://twitter.com/josevalim/status/1521390714025758720 – Jose Valim recently credited NFIBrokerage for bringing even more contributions to the Elixir community
https://helix-editor.com/
https://clojure.org/
https://github.com/NFIBrokerage
https://www.eventstore.com/eventstoredb
https://github.com/elixir-mint/mint
https://github.com/elixir-lang/gen_stage
https://grpc.io/
https://github.com/tree-sitter/tree-sitter
https://github.com/elixir-lang/tree-sitter-elixir
https://elixir-lang.org/tree-sitter-elixir/
https://github.com/jonatanklosko – Jonatan Kłosko did the majority of the work on the Elixir Tree-Sitter library
https://github.com/gleam-lang/tree-sitter-gleam/
https://github.com/ninenines/gun
https://github.com/Azolo/websockex
https://hex.pm/packages/phoenix_client
https://github.com/nerves-hub/nerves_hub_link
https://en.wikipedia.org/wiki/HTTP/2
https://github.com/NFIBrokerage/spear
Guest Information
https://github.com/the-mikedavis – on Github
https://github.com/NFIBrokerage – Work Github organization
Find us online
Message the show - @ThinkingElixir
Email the show - show@thinkingelixir.com
Mark Ericksen - @brainlid
David Bernheisel - @bernheisel
Cade Ward - @cadebward
Sponsored By:Fly.io: Fly.io is a great place to deploy your next Phoenix application! Check them out!

May 10, 2022 • 47min
98: Elixir in the iOS App Store with Dominic Letz
Dominic Letz did something I thought was impossible. He got an Elixir application packaged up, approved, and available through the Apple App Store on iOS devices. The application runs Elixir on the device, creates a web view, and hosts Phoenix LiveView pages. They went further and created a bridge to integrate with more of the platform specific features of the device. Is Android your preferred platform? They have it running there as well and in the Google Play Store. We talk about how it works, challenges overcome, and where it is now. They also created several Github projects that show how to do this yourself to create a cross-platform desktop application and apps for Apple and Android mobile devices. Very cool! They want your help to make it even better.
Show Notes online - http://podcast.thinkingelixir.com/98
Elixir Community News
https://twitter.com/whatyouhide/status/1521381183229210624 – Mint now has an official WebSocket client
https://github.com/elixir-mint/mint_web_socket
https://github.com/NFIBrokerage
https://github.com/NFIBrokerage/slipstream
https://twitter.com/josevalim/status/1519377962063249409 – José Valim announced Dashbit is sponsoring part-time development of sonic_pi for the next 6 months
https://sonic-pi.net/ – Sonic Pi website
https://github.com/sonic-pi-net/sonic-pi – Sonic Pi project
https://github.blog/2022-04-29-bringing-code-navigation-to-communities/ – Github gave Elixir another shout-out in a recent blog post “Bringing code navigation to communities”.
https://twitter.com/josevalim/status/1519630932583632897 – The Nx project reaches two major milestones at the same time.
https://github.com/elixir-nx/nx
https://hex.pm/packages/exla – EXLA package now on Hex.pm
https://hex.pm/packages/torchx – Torchx package now on Hex.pm
https://twitter.com/robertoaloi/status/1520395745064542209 – WhatsApp's Erlang implementation of the Raft consensus algorithm is now open source
https://github.com/WhatsApp/waraft – WARaft is a Raft library in Erlang by WhatsApp. It provides an Erlang implementation to obtain consensus among replicated state machines.
Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com
Discussion Resources
https://apps.apple.com/us/app/diode-drive/id1605222443 – Diode Drive iOS app
https://play.google.com/store/apps/details?id=io.diode.drive – Google Play listing
https://github.com/elixir-desktop/desktop
https://github.com/elixir-desktop/ios-example-app – iOS example app
https://github.com/elixir-desktop/android-example-app – Android example app
https://github.com/elixir-desktop/runtimes – Prepared runtimes for android and iOS devices.
https://github.com/elixir-desktop/bridge – Used by “desktop” - does native integrations
https://podcast.thinkingelixir.com/69 – Previous interview - episode 69
https://diode.io/diode%20drive/self-custody-for-data-22032/ – Why you should care about Self-Custody for data now
https://github.com/couchbaselabs/iErl14
https://podcast.thinkingelixir.com/81 – Elixir in a Burrito with Quinn and Digit
https://www.wxwidgets.org/
Guest Information
https://twitter.com/DominicLetz – on Twitter
https://github.com/dominicletz/ – on Github
https://diode.io/ – Diode.io website
https://github.com/diodechain – Diode Github organization
Elixir Slack's desktop channel
Find us online
Message the show - @ThinkingElixir
Email the show - show@thinkingelixir.com
Mark Ericksen - @brainlid
David Bernheisel - @bernheisel
Cade Ward - @cadebward
Sponsored By:Fly.io: Fly.io is a great place to deploy your next Phoenix application! Check them out!

May 3, 2022 • 49min
97: Avro and Elixir with Dave Lucia
Dave Lucia released version 2.0 of AvroEx, an Elixir library for working with Avro protocols and schemas. To understand Avro, we need an overview of the whole Kafka-centric flow! He gives us a taste of the Enterprise soup of JVM tools used for populating data lakes, all for the business benefit of data analysis and machine learning. We may work on Elixir systems that are tasked with hooking into this other Enterprise-y world and getting an overview of the pieces and awareness of the tools available can really help out! Dave also shares his goal of creating a new Markdown parser for Elixir and updates us on the next chapter of his professional journey.
Show Notes online - http://podcast.thinkingelixir.com/97
Elixir Community News
https://twitter.com/wojtekmach/status/1516533938977705990 – Wojtek Mach shared some additional reasons for using NIFs to work with Rust or Zig that aren't performance related.
https://twitter.com/atyborska93/status/1516773412848422919 – Angelika Tyborska shared that the Elixir track on Exercism.io got two new fun practice exercises
http://exercism.org/tracks/elixir/exercises/killer-sudoku-helper – Exercism.io Elixir puzzle - Killer Sudoku Helper
https://exercism.org/tracks/elixir/exercises/state-of-tic-tac-toe – Exercism.io Elixir puzzle - State of Tic Tac Toe
https://gleam.run/news/v0.21-introducing-the-gleam-language-server/ – Gleam now has a language server
https://twitter.com/cigrainger/status/1518896955921154048 – Nx Explorer project reaches a new milestone and was released to Hex.
https://hexdocs.pm/explorer/exploring_explorer.html – Includes a “Ten Minutes to Explorer” Livebook guide
https://twitter.com/MozillaHubs/status/1516469058849312768 – Mozilla hiring for a Senior Elixir Engineer to help work on their Hubs Team to help build open social spaces for the web.
https://hubs.mozilla.com/
https://github.com/mozilla/hubs
https://github.com/mozilla/reticulum
https://elixir-lang.org/blog/2021/06/02/social-virtual-spaces-with-elixir-at-mozilla – Elixir blog post from a year ago about the Mozilla Hubs Elixir project.
https://github.com/elixir-makeup/makeup_diff – Parker Selbert created makeup_diff for displaying diff markup in ExDocs
https://www.erlang.org/blog/type-based-optimizations-in-the-jit/ – Blog post on the Erlang blog looked interesting. About OTP 25 type optimizations for the JIT compiler.
https://codesync.global/conferences/code-beam-sto-2022/#schedule – CodeBeam in Stockholm Sweden speaker lineup and schedule are out.
https://www.empex.co/mtn – Empex MTN in Salt Lake City on May 6
https://www.elixirconf.eu/ – ElixirConf EU in London on June 9-10
https://elixirconf.com/events – ElixirConf US in Colorado on August 30-Sep2
Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com
Discussion Resources
https://davelucia.com/blog/avro-2.0
https://github.com/beam-community/avro_ex
https://avro.apache.org/
https://kafka.apache.org/
https://podcast.thinkingelixir.com/75 – Previous discussion
https://www.bloomberg.com/professional/solution/bloomberg-terminal/
https://theoutline.com/
https://elm-lang.org/
https://developers.google.com/protocol-buffers/
https://thrift.apache.org/
https://github.com/klarna/erlavro
https://databricks.com/
https://spark.apache.org/
https://en.wikipedia.org/wiki/Extract,_transform,_load
https://databricks.com/glossary/what-is-parquet
https://www.snowflake.com/workloads/data-lake/
https://github.com/beam-community
https://github.com/doomspork
https://github.com/surface-ui/surface
https://github.com/pragdave/earmark
https://github.com/pragdave
https://github.com/davydog187/marx
https://www.youtube.com/watch?v=dmBdFh5N1g4 – Migrating from Kafka to RabbitMQ at SimpleBet - Why and How
https://twitter.com/davydog187/status/1512393866653011968 – Announced leaving SimpleBet and co-founding something new.
https://twitter.com/davydog187/status/1512393877575110668 – Co-Founding Bitfo as the CTO.
https://www.bitfo.com/
https://ethereumprice.org/
https://www.bitcoinprice.com/
https://defirate.com/
Guest Information
https://twitter.com/davydog187 – on Twitter
https://github.com/davydog187/ – on Github
https://davelucia.com – Blog
Find us online
Message the show - @ThinkingElixir
Email the show - show@thinkingelixir.com
Mark Ericksen - @brainlid
David Bernheisel - @bernheisel
Cade Ward - @cadebward
Sponsored By:Fly.io: Fly.io is a great place to deploy your next Phoenix application! Check them out!

Apr 26, 2022 • 1h 18min
96: Reviewing Elixir with José Valim - Part 4
José Valim returns for part 4 in our 5 part series as we count down to the 10 year anniversary of the Elixir project we know and love! In Part 4, we talk through the Elixir releases of 1.10, 1.11, and 1.12. We go deeper on the philosophy of “explicit vs implicit” and how that informs many design decisions about the language. We learn about how Elixir and Erlang loggers were unified, how matching on map keys in guards enabled receives block enhancements, how common date sorting bugs were solved with Enum.sort improvements (that you should really listen to), the improvements to application config, how exceptions work in Erlang and Elixir and much more! A packed episode!
Show Notes online - http://podcast.thinkingelixir.com/96
Elixir Community News
https://github.com/livebook-dev/livebook/pull/1115 – Livebook adds “Code Focus Mode” making it easier to focus on the code cells.
https://github.com/livebook-dev/livebook/discussions – Livebook project announced and opened a Github Discussions section to the project.
https://github.com/phoenixframework/phoenix_live_dashboard/pull/367 – Full screen mode contribution added to Phoenix LiveDashboard project.
https://podcast.thinkingelixir.com/92 – Mitch Hanberg talked with us previously about Temple
https://github.com/mhanberg/eex_compiler_visualizer – Mitch Hanberg created an “EEX Compiler Visualizer” project.
https://twitter.com/mitchellh/status/1515369637726224385?s=12&t=so7B66NTrJKPwDWLqMxpJA – The Zig language reached the milestone of being self-hosted
https://github.com/ziglang/zig/pull/11442 – Zig being self-hosted means the compiler is capable of building itself.
Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com
Discussion Resources
https://github.com/elixir-lang/elixir/blob/v1.10/CHANGELOG.md – Elixir 1.10 changelog
https://elixirforum.com/t/discussion-incorporating-erlang-otp-21-map-guards-in-elixir/14816 – Incorporating Erlang/OTP 21 map guards in Elixir
https://github.com/elixir-lang/elixir/blob/v1.11/CHANGELOG.md – Elixir 1.11 changelog
https://github.com/elixir-lang/elixir/blob/v1.12/CHANGELOG.md – Elixir 1.12 changelog
https://www.erlang.org/eeps/eep-0054.html – EEP 54 - Provide more information about errors
https://github.com/sasa1977/boundary
https://hexdocs.pm/elixir/Enum.html#sort/2-sorting-structs – Improvements to sort-based APIs in Enum - Enum.sort(dates, Date)
https://hexdocs.pm/elixir/Calendar.html#strftime/3
https://github.com/elixir-nx/nx
https://livebook.dev/
https://hexdocs.pm/mix/Mix.html#install/2
CMD+\ or CTRL+\
https://github.com/doawoo/teex
https://hexdocs.pm/elixir/Kernel.html
https://hexdocs.pm/elixir/Kernel.html#then/2
https://hexdocs.pm/elixir/Kernel.html#tap/2
https://hexdocs.pm/elixir/Range.html
https://hexdocs.pm/elixir/Range.html#disjoint?/2
https://github.com/elixir-lang/elixir/blob/a64d42f5d3cb6c32752af9d3312897e8cd5bb7ec/lib/elixir/lib/range.ex#L249-L251
https://math.stackexchange.com/questions/1656120/formula-to-find-the-first-intersection-of-two-arithmetic-progressions
Guest Information
https://twitter.com/josevalim – on Twitter
https://github.com/josevalim – on Github
https://dashbit.co/ – Dashbit website and blog
https://erlef.org/news/ – The Erlang Ecosystem Foundation news
Find us online
Message the show - @ThinkingElixir
Email the show - show@thinkingelixir.com
Mark Ericksen - @brainlid
David Bernheisel - @bernheisel
Cade Ward - @cadebward
Sponsored By:Fly.io: Fly.io is a great place to deploy your next Phoenix application! Check them out!

Apr 19, 2022 • 39min
95: Rustler Precompiled with Philip Sampaio
The recent announcement of Rustler Precompiled prompted a lot of interest and questions. We talk with Philip Sampaio to understand what he created and what problem it helps solve. The project helps lower the bar for using Rust libraries for NIFs in Elixir making it possible to see more libraries using Rustler in the future. He explains what prompted the work initially and how projects can benefit from it. We discuss what it means for internal company projects and especially for libraries. He explains how the project addresses the many architecture and platform combinations too. We end with learning about his sample CI project that shows us how to set up our own CI systems to use it.
Show Notes online - http://podcast.thinkingelixir.com/95
Elixir Community News
https://github.com/phoenixframework/phoenix/pull/4742 – Phoenix presence client
https://twitter.com/elixirphoenix/status/1511393478873427982 – Twitter thread discussing the Phoenix presence client
https://hexdocs.pm/phoenix_live_view/changelog.html#0-17-8-2022-04-06 – LiveView 0.17.8 released. Includes the HEEx template formatter
https://hexdocs.pm/phoenix_live_view/Phoenix.LiveView.HTMLFormatter.html – Docs on how to set it up
Issues discussing VS Code problems
https://github.com/elixir-lsp/vscode-elixir-ls/issues/242
https://github.com/elixir-lsp/vscode-elixir-ls/issues/241
https://github.com/DockYard/flame_on – flame_on library updated
https://dockyard.com/blog/2022/02/22/profiling-elixir-applications-with-flame-graphs-and-flame-on – Original flame_on announcement post for more info
https://twitter.com/sorentwo/status/1513630468490645509 – Oban adds “inline mode” to make testing more straightforward
https://www.mitchellhanberg.com/how-eex-turns-your-template-into-html/ – Mitchell Hanberg wrote an article about how EEx works
https://podcast.thinkingelixir.com/92 – Previous interview with Mitchell Hanberg
https://exercism.org/tracks/elixir/exercises/take-a-number-deluxe – Exercism.io GenServer learning exercise was added.
https://twitter.com/atyborska93/status/1513807461043552256 – Angelika shares about the Exercism.io update
https://twitter.com/whatyouhide/status/1512100896653590535 – Andrea Leopardi is working at Apple now on their Environment team.
https://www.apple.com/environment/ – More about the Apple Environment team
https://www.youtube.com/watch?v=R7t7zca8SyM – “Elixir in 100 seconds” video
Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com
Discussion Resources
https://dashbit.co/blog/rustler-precompiled
https://twitter.com/philipsampaio/status/1503809314489831441
https://github.com/philss/rustler_precompiled
https://github.com/philss/rustler_precompilation_example
https://github.com/philss/floki
https://github.com/rusterlium/rustler
https://github.com/servo/html5ever
https://github.com/elixir-nx/nx
https://hex.pm/packages?search=depends%3Ahexpm%3Arustler&sort=total_downloads – Current Hex packages using rustler
https://github.com/elixir-nx/nx/tree/main/nx#readme
https://elixir-nx.github.io/explorer/Explorer.DataFrame.html
https://www.pola.rs/
https://github.com/discord/sorted_set_nif
https://ziglang.org/
https://github.com/ityonemo/zigler
https://github.com/philss/rustler_precompiled/blob/main/PRECOMPILATION_GUIDE.md
https://github.com/philss/rustler_precompilation_example
Guest Information
https://twitter.com/philipsampaio – on Twitter
https://github.com/philss/ – on Github
https://dashbit.co/blog – Dashbit blog where he writes
https://phils.dev – Personal blog
Find us online
Message the show - @ThinkingElixir
Email the show - show@thinkingelixir.com
Mark Ericksen - @brainlid
David Bernheisel - @bernheisel
Cade Ward - @cadebward
Sponsored By:Fly.io: Fly.io is a great place to deploy your next Phoenix application! Check them out!

Apr 12, 2022 • 1h
94: Benchee and OpenSource with Tobias Pfeiffer
We talk with Tobias Pfeiffer about his popular performance benchmarking tool Benchee. We learn about why he created it, what's special about it, and the big features in the latest release. It was 2 years between this release and the previous one. Tobi talks openly about the technical challenges that compounded with personal challenges, feelings of obligation, anxiety, and the drive for perfection. As developers, many of us struggle with these same issues and it helps just hearing that we're not alone.
Show Notes online - http://podcast.thinkingelixir.com/94
Elixir Community News
https://www.devsforukraine.io/ – Devs for Ukraine online conference, April 25-26
https://github.com/sorentwo/oban/pull/677 – Oban library putting effort into documentation guides. Testing is the first out.
https://medium.com/membraneframework/introducing-auto-demands-release-of-membrane-v0-9-0-c0213d8efa51 – Membrane Framework release v0.9.0 was announced
https://podcast.thinkingelixir.com/43 – Previous show covering more about Membrane
https://supabase.com/blog/2022/03/30/supabase-enterprise#elixir-livebooks – Supabase announced Livebooks for Supabase
https://github.com/supabase/livebooks
https://podcast.thinkingelixir.com/73 – Previous show with Paul Copplestone about Supabase
Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com
Discussion Resources
https://github.com/bencheeorg/benchee
https://pragtob.wordpress.com/2022/03/08/benchee-1-1-0-released-why-did-it-take-so-long/
http://www.pragtob.info/
https://github.com/PragTob?tab=repositories – List of current github repositories
https://remote.com/
https://nextjs.org/ – NextJS is react
https://spawnfest.org/
https://github.com/github/scientist – Scientist ruby gem
https://github.com/cwbriones/scientist – Elixir port of the library
[Application Performance Monitoring (APM)](Application Performance Monitoring (APM))
https://en.wikipedia.org/wiki/Garbage_collection_(computer_science)
https://www.youtube.com/watch?v=aqLujfzvUgM – Devon Estes - Digging through the garbage
https://github.com/OvermindDL1
https://github.com/whatyouhide/stream_data
https://www.rug-b.de/
https://github.com/bencheeorg/benchee/issues/313 – Benchee Mac issue
https://www.shopify.com/
https://rubygems.org/gems/simplecov
https://github.com/alco/benchfella
https://rubygems.org/gems/benchmark-ips
https://github.com/bencheeorg/benchee#hooks-setup-teardown-etc
Guest Information
https://twitter.com/PragTob – on Twitter
https://github.com/PragTob/ – on Github
http://www.pragtob.info/ – Blog
https://pragtob.wordpress.com/ – Blog
Find us online
Message the show - @ThinkingElixir
Email the show - show@thinkingelixir.com
Mark Ericksen - @brainlid
David Bernheisel - @bernheisel
Cade Ward - @cadebward
Sponsored By:Fly.io: Fly.io is a great place to deploy your next Phoenix application! Check them out!

Apr 5, 2022 • 53min
93: Preventing Service Abuse with Michael Lubas
We talk with Michael Lubas about steps we can take to protect our Phoenix applications from common automated bot attacks. We cover API abuse to send email spam, carding attacks, and credential stuffing. We learn how Michael started paraxial.io which aims to specifically serve the Elixir community and more!
Show Notes online - http://podcast.thinkingelixir.com/93
Elixir Community News
https://erlef.org/blog/eef/election-2022-results – Erlang Ecosystem Foundation board election voting results
https://erlef.org/blog/eef/election-2022 – Previous election notice and explanations
https://hexdocs.pm/ex_doc/changelog.html – ExDoc v0.28.3 was released
https://twitter.com/josevalim/status/1508528099973120004 – Call to help move ExDoc away from webpack to esbuild
https://twitter.com/dominicletz/status/1506675402059792388 – iOS app store now has an Elixir application deployed in it!
https://podcast.thinkingelixir.com/69 – Previous interview with Dominic Letz about doing Elixir on the desktop and mobile.
https://www.erlang.org/news/155 – Erlang 25.0 rc-2 was released and requesting feedback
https://twitter.com/josevalim/status/1507443537851392007 – Jose Valim's experience compiling Elixir from scratch on Apple's new MacStudio M1 Max
Conference reminders
https://www.empex.co/mtn – Empex MTN in Salt Lake City on May 6
https://codesync.global/conferences/code-beam-sto-2022/ – CodeBEAM in Stockholm on May 19-20
https://www.elixirconf.eu/ – ElixirConf EU in London on June 9-10
https://elixirconf.com/events – ElixirConf US in Colorado on August 30-Sep2
https://github.com/lucasvegi/Elixir-Code-Smells – Elixir Code Smells - public project
https://fly.io/phoenix-files/safe-ecto-migrations/ – Safe Ecto Migrations
https://twitter.com/TylerAYoung/status/1508413319178297352 – Today I Learned about doctests and importing
Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com
Discussion Resources
https://www.paraxial.io/blog/throttle-requests
https://github.com/michalmuskala/plug_attack
https://owasp.org/Top10/
https://github.com/magento/magento2/issues/28614 – What is a carding attack?
https://owasp.org/www-project-automated-threats-to-web-applications/
http://paraxial.io/
https://frame.io/
https://news.adobe.com/news/news-details/2021/Adobe-Completes-Acquisition-of-Frame.io/default.aspx
https://www.metasploit.com/
https://www.crunchbase.com/
https://owasp.org/www-community/attacks/Credential_stuffing
https://en.wikipedia.org/wiki/Web_application_firewall
Guest Information
https://twitter.com/paraxialio – on Twitter
https://github.com/paraxialio/ – on Github
https://paraxial.io/ – Website
sales@paraxial.io
Find us online
Message the show - @ThinkingElixir
Email the show - show@thinkingelixir.com
Mark Ericksen - @brainlid
David Bernheisel - @bernheisel
Cade Ward - @cadebward
Sponsored By:Fly.io: Fly.io is a great place to deploy your next Phoenix application! Check them out!

Mar 29, 2022 • 48min
92: Temple with Mitchell Hanberg
We talk with Mitchell Hanberg and learn about why he created the alternate Phoenix templating language called “Temple”. He explains how Temple works, some of its unique benefits and where he's going with it in the future. Mitchell also took over maintenance of the testing project Wallaby from Chris Keathley. We revisit what Wallaby is and the special place it can have when building automated full system tests for our projects.
Show Notes online - http://podcast.thinkingelixir.com/92
Elixir Community News
https://twitter.com/josevalim/status/1506248906979659782 – José shared his personal definition of a reduction as "energy".
https://twitter.com/thibaut_barrere/status/1501909747854942212 – PSA for people whose app fails to start on port 5000 when running on the new macOS.
https://dashbit.co/blog/rustler-precompiled – Rustler Precompiled project was announced on the Dashbit blog by Philip Sampaio
https://twitter.com/nervesproject/status/1504821571524964357 – Lots of update Nerves releases on Hex
https://snyk.io/blog/peacenotwar-malicious-npm-node-ipc-package-vulnerability/ – A popular NPM package was maliciously updated by the maintainer as an act of protest. Impacted Vue.js projects.
Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com
Discussion Resources
https://github.com/mhanberg/temple
https://github.com/mhanberg/tableau
https://github.com/mhanberg/blog/tree/mh/tableau
https://github.com/elixir-wallaby/wallaby
https://twitter.com/elixir_wallaby
https://www.selenium.dev/documentation/webdriver/
https://github.com/markaby/markaby
https://crystal-lang.org/
https://luckyframework.org/
https://laravel.com/
https://laravel.com/docs/9.x/blade
https://github.com/elixir-lsp/elixir_sense
https://surface-ui.org/template_syntax
https://surface-ui.org/
https://teamcapybara.github.io/capybara/
https://hexdocs.pm/hound/readme.html
https://www.selenium.dev/
https://keathley.io/blog/concurrent-feature-testing-with-wallaby.html
https://github.com/elixir-wallaby/wallaby/discussions
https://github.com/puppeteer/puppeteer
Guest Information
https://twitter.com/mitchhanberg – on Twitter
https://github.com/mhanberg/ – on Github
https://www.mitchellhanberg.com – Blog
Find us online
Message the show - @ThinkingElixir
Email the show - show@thinkingelixir.com
Mark Ericksen - @brainlid
David Bernheisel - @bernheisel
Cade Ward - @cadebward
Sponsored By:Fly.io: Fly.io is a great place to deploy your next Phoenix application! Check them out!

Mar 22, 2022 • 59min
91: Reviewing Elixir with José Valim - Part 3
José Valim returns to continue with part 3 of our 5 part series as we count down to the 10 year anniversary of the Elixir project we know and love. In Part 3, we talk through the Elixir releases of 1.7, 1.8, and 1.9. We talk about the unification efforts between Elixir and Erlang. These came through changes to error stacktraces, how documentation is stored, a unified logger, and more. We learn how features like Mix.target made a big difference for the Nerves project. We also hear the call for contributors to help bring a few remaining date/time features to Elixir. The big feature in Elixir 1.9 was the addition of deployment releases and the early efforts at managing config for releases. We thought this would be a short episode but found there was a lot to talk about and learn!
Show Notes online - http://podcast.thinkingelixir.com/91
Elixir Community News
https://github.com/bencheeorg/benchee – Benchee 1.1.0 release
https://pragtob.wordpress.com/2022/03/08/benchee-1-1-0-released-why-did-it-take-so-long/ – Blog post on Benchee release and why the release took so long
https://twitter.com/josevalim/status/1501482561511510018 – ExDoc gets a new minor feature that lets us syntax highlight HEEx templates
https://elixirpatterns.dev/ – “Elixir Patterns” book is being pre-launched by the authors, Alex Koutmos and Hugo Baraúna.
https://davelucia.com/blog/avro-2.0 – AvroEx 2.0 released
https://www.functionalconf.com/ – Functional Conference 2022 - Asia's Premier Functional Programming Conference
Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com
Discussion Resources
https://podcast.thinkingelixir.com/82 – Part 1
https://podcast.thinkingelixir.com/87 – Part 2
https://github.com/elixir-lang/elixir/blob/v1.7/CHANGELOG.md – Elixir changelog for v1.7
https://www.erlang.org/eeps/eep-0048 – EEP 48
https://hexdocs.pm/nx/Nx.html
https://github.com/elixir-lang/elixir/blob/v1.8/CHANGELOG.md – Elixir changelog for v1.8
https://hexdocs.pm/elixir/Kernel.html#guards – Elixir docs on guards
“dunder“ = a Double Underscore
https://hexdocs.pm/elixir/Protocol.html#derive/3 – Protocol derive
https://hexdocs.pm/elixir/Inspect.html#module-deriving – Deriving for inspect
https://github.com/elixir-lang/elixir/blob/v1.9/CHANGELOG.md – Elixir changelog for v1.9
https://hexdocs.pm/ecto/Ecto.Schema.html#field/3-options
https://hex.pm/packages/date_time_parser
https://github.com/bitwalker/distillery – Mix package used for releases before it was built into Elixir.
Guest Information
https://twitter.com/josevalim – on Twitter
https://github.com/josevalim – on Github
https://dashbit.co/ – Dashbit website and blog
https://erlef.org/news/ – The Erlang Ecosystem Foundation news
Find us online
Message the show - @ThinkingElixir
Email the show - show@thinkingelixir.com
Mark Ericksen - @brainlid
David Bernheisel - @bernheisel
Cade Ward - @cadebward
Sponsored By:Fly.io: Fly.io is a great place to deploy your next Phoenix application! Check them out!

Mar 15, 2022 • 42min
90: Elixir Cards with Tetiana Dushenkivska
We talk with Tetiana Dushenkivska, the creator of Elixir Cards, a series of Elixir flashcards with multiple ways to use them. We talk about why she created the cards, how they helped her, and how others have used them. We talk about learning models and the importance of repetition for memorizing things. Tetiana shares how LiveView is used in the creation of the cards and more! David shares how he used the cards for fun drills at meetups and Tetiana fondly recalls a tournament held at a previous Elixir conf. She also shares what she's working on now for a future online learning system.
Show Notes online - http://podcast.thinkingelixir.com/90
Elixir Community News
https://lu.ma/elixir-social – Elixir lunch is now Elixir social
https://twitter.com/josevalim/status/1499132873114361872 – The Phoenix HEEX template formatter now merged in to LiveView
https://twitter.com/nivenhuh/status/1483895710932078593 – Apple was hiring for an Elixir developer to join their Environment team. Position is closed, but an insight to Elixir usage at the company.
https://www.apple.com/environment/ – Apple environment initiative
https://twitter.com/emjii/status/1500574395936485384 – Performance work continues for Apple's M1 chips and Elixir. This tweet is about slow package unpacking during mix deps.get
https://github.com/akoutmos/prom_ex/pull/122 – Alex Koutmos shared that PromEx now allows you to bundle Grafana's Agent so you can push metrics to Prometheus.
https://fly.io/blog/intro-to-accessibility/ – An intro to Accessibility on the web. LiveBeats will continue to get enhancements so we can see an example.
https://twitter.com/fhunleth/status/1500521232965451776 – Frank Hunleth tuning Nerves for the new Grisp 2 board. Can get pre-built binaries to play with.
https://www.grisp.org/ – Grisp 2 is a hardware device built with Elixir and Erlang in mind
https://github.com/erlang/otp/pull/4750#issuecomment-823816722 – Correction about constant time and :crypto.hash_equals
Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com
Discussion Resources
https://twitter.com/elixircards – Elixir Cards Twitter account
https://twitter.com/gitcards – Git Cards Twitter account
https://www.elixircards.co.uk/ – Website for sales/marketing of Elixir Cards
https://gitflashcards.com/ – Git cards website
https://pragprog.com/titles/elixir16/programming-elixir-1-6/
https://hexdocs.pm/elixir/Enum.html
https://www.eng.auburn.edu/current-students/documents/forgetting-curve.pdf
https://kapeli.com/dash – Dash tool on MacOS for combined documentation searching
https://zealdocs.org/ – Zeal is a Dash-like tool that is OpenSource and cross platform for Linux and Windows.
https://xkcd.com/1168/ – Comic about remembering Tar commands
sales@cleverbunny.io
Guest Information
https://twitter.com/Tetiana12345678 – on Twitter
https://github.com/tetiana12345678 – on Github
sales@cleverbunny.io
Find us online
Message the show - @ThinkingElixir
Email the show - show@thinkingelixir.com
Mark Ericksen - @brainlid
David Bernheisel - @bernheisel
Cade Ward - @cadebward
Sponsored By:Fly.io: Fly.io is a great place to deploy your next Phoenix application! Check them out!


