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.
Similar Podcasts

Elixir Outlaws
Elixir Outlaws is an informal discussion about interesting things happening in Elixir. Our goal is to capture the spirit of a conference hallway discussion in a podcast.

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.

Linux For Everyone
A show about the thrilling world of desktop Linux, open-source software, and the community creating it. For beginners and veterans alike! Hosted by Jason Evangelho, Jerry Morrison and Schykle.
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 (http://podcast.thinkingelixir.com/98) Elixir Community News - https://twitter.com/whatyouhide/status/1521381183229210624 (https://twitter.com/whatyouhide/status/1521381183229210624) – Mint now has an official WebSocket client - https://github.com/elixir-mint/mintwebsocket (https://github.com/elixir-mint/mint_web_socket) - https://github.com/NFIBrokerage (https://github.com/NFIBrokerage) - https://github.com/NFIBrokerage/slipstream (https://github.com/NFIBrokerage/slipstream) - https://twitter.com/josevalim/status/1519377962063249409 (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/ (https://sonic-pi.net/) – Sonic Pi website - https://github.com/sonic-pi-net/sonic-pi (https://github.com/sonic-pi-net/sonic-pi) – Sonic Pi project - https://github.blog/2022-04-29-bringing-code-navigation-to-communities/ (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 (https://twitter.com/josevalim/status/1519630932583632897) – The Nx project reaches two major milestones at the same time. - https://github.com/elixir-nx/nx (https://github.com/elixir-nx/nx) - https://hex.pm/packages/exla (https://hex.pm/packages/exla) – EXLA package now on Hex.pm - https://hex.pm/packages/torchx (https://hex.pm/packages/torchx) – Torchx package now on Hex.pm - https://twitter.com/robertoaloi/status/1520395745064542209 (https://twitter.com/robertoaloi/status/1520395745064542209) – WhatsApp's Erlang implementation of the Raft consensus algorithm is now open source - https://github.com/WhatsApp/waraft (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 (https://twitter.com/ThinkingElixir) or email at show@thinkingelixir.com (mailto:show@thinkingelixir.com) Discussion Resources - https://apps.apple.com/us/app/diode-drive/id1605222443 (https://apps.apple.com/us/app/diode-drive/id1605222443) – Diode Drive iOS app - https://play.google.com/store/apps/details?id=io.diode.drive (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/desktop) - https://github.com/elixir-desktop/ios-example-app (https://github.com/elixir-desktop/ios-example-app) – iOS example app - https://github.com/elixir-desktop/android-example-app (https://github.com/elixir-desktop/android-example-app) – Android example app - https://github.com/elixir-desktop/runtimes (https://github.com/elixir-desktop/runtimes) – Prepared runtimes for android and iOS devices. - https://github.com/elixir-desktop/bridge (https://github.com/elixir-desktop/bridge) – Used by “desktop” - does native integrations - https://podcast.thinkingelixir.com/69 (https://podcast.thinkingelixir.com/69) – Previous interview - episode 69 - https://diode.io/diode%20drive/self-custody-for-data-22032/ (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://github.com/couchbaselabs/iErl14) - https://podcast.thinkingelixir.com/81 (https://podcast.thinkingelixir.com/81) – Elixir in a Burrito with Quinn and Digit - https://www.wxwidgets.org/ (https://www.wxwidgets.org/) Guest Information - https://twitter.com/DominicLetz (https://twitter.com/DominicLetz) – on Twitter - https://github.com/dominicletz/ (https://github.com/dominicletz/) – on Github - https://diode.io/ (https://diode.io/) – Diode.io website - https://github.com/diodechain (https://github.com/diodechain) – Diode Github organization - Elixir Slack's desktop channel Find us online - Message the show - @ThinkingElixir (https://twitter.com/ThinkingElixir) - Email the show - show@thinkingelixir.com (mailto:show@thinkingelixir.com) - Mark Ericksen - @brainlid (https://twitter.com/brainlid) - David Bernheisel - @bernheisel (https://twitter.com/bernheisel) - Cade Ward - @cadebward (https://twitter.com/cadebward)
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 (http://podcast.thinkingelixir.com/97) Elixir Community News - https://twitter.com/wojtekmach/status/1516533938977705990 (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 (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 (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 (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/ (https://gleam.run/news/v0.21-introducing-the-gleam-language-server/) – Gleam now has a language server - https://twitter.com/cigrainger/status/1518896955921154048 (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 (https://hexdocs.pm/explorer/exploring_explorer.html) – Includes a “Ten Minutes to Explorer” Livebook guide - https://twitter.com/MozillaHubs/status/1516469058849312768 (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://hubs.mozilla.com/) - https://github.com/mozilla/hubs (https://github.com/mozilla/hubs) - https://github.com/mozilla/reticulum (https://github.com/mozilla/reticulum) - https://elixir-lang.org/blog/2021/06/02/social-virtual-spaces-with-elixir-at-mozilla (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 (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/ (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 (https://codesync.global/conferences/code-beam-sto-2022/#schedule) – CodeBeam in Stockholm Sweden speaker lineup and schedule are out. - https://www.empex.co/mtn (https://www.empex.co/mtn) – Empex MTN in Salt Lake City on May 6 - https://www.elixirconf.eu/ (https://www.elixirconf.eu/) – ElixirConf EU in London on June 9-10 - https://elixirconf.com/events (https://elixirconf.com/events) – ElixirConf US in Colorado on August 30-Sep2 Do you have some Elixir news to share? Tell us at @ThinkingElixir (https://twitter.com/ThinkingElixir) or email at show@thinkingelixir.com (mailto:show@thinkingelixir.com) Discussion Resources - https://davelucia.com/blog/avro-2.0 (https://davelucia.com/blog/avro-2.0) - https://github.com/beam-community/avro_ex (https://github.com/beam-community/avro_ex) - https://avro.apache.org/ (https://avro.apache.org/) - https://kafka.apache.org/ (https://kafka.apache.org/) - https://podcast.thinkingelixir.com/75 (https://podcast.thinkingelixir.com/75) – Previous discussion - https://www.bloomberg.com/professional/solution/bloomberg-terminal/ (https://www.bloomberg.com/professional/solution/bloomberg-terminal/) - https://theoutline.com/ (https://theoutline.com/) - https://elm-lang.org/ (https://elm-lang.org/) - https://developers.google.com/protocol-buffers/ (https://developers.google.com/protocol-buffers/) - https://thrift.apache.org/ (https://thrift.apache.org/) - https://github.com/klarna/erlavro (https://github.com/klarna/erlavro) - https://databricks.com/ (https://databricks.com/) - https://spark.apache.org/ (https://spark.apache.org/) - https://en.wikipedia.org/wiki/Extract,transform,load (https://en.wikipedia.org/wiki/Extract,_transform,_load) - https://databricks.com/glossary/what-is-parquet (https://databricks.com/glossary/what-is-parquet) - https://www.snowflake.com/workloads/data-lake/ (https://www.snowflake.com/workloads/data-lake/) - https://github.com/beam-community (https://github.com/beam-community) - https://github.com/doomspork (https://github.com/doomspork) - https://github.com/surface-ui/surface (https://github.com/surface-ui/surface) - https://github.com/pragdave/earmark (https://github.com/pragdave/earmark) - https://github.com/pragdave (https://github.com/pragdave) - https://github.com/davydog187/marx (https://github.com/davydog187/marx) - https://www.youtube.com/watch?v=dmBdFh5N1g4 (https://www.youtube.com/watch?v=dmBdFh5N1g4) – Migrating from Kafka to RabbitMQ at SimpleBet - Why and How - https://twitter.com/davydog187/status/1512393866653011968 (https://twitter.com/davydog187/status/1512393866653011968) – Announced leaving SimpleBet and co-founding something new. - https://twitter.com/davydog187/status/1512393877575110668 (https://twitter.com/davydog187/status/1512393877575110668) – Co-Founding Bitfo as the CTO. - https://www.bitfo.com/ (https://www.bitfo.com/) - https://ethereumprice.org/ (https://ethereumprice.org/) - https://www.bitcoinprice.com/ (https://www.bitcoinprice.com/) - https://defirate.com/ (https://defirate.com/) Guest Information - https://twitter.com/davydog187 (https://twitter.com/davydog187) – on Twitter - https://github.com/davydog187/ (https://github.com/davydog187/) – on Github - https://davelucia.com (https://davelucia.com) – Blog Find us online - Message the show - @ThinkingElixir (https://twitter.com/ThinkingElixir) - Email the show - show@thinkingelixir.com (mailto:show@thinkingelixir.com) - Mark Ericksen - @brainlid (https://twitter.com/brainlid) - David Bernheisel - @bernheisel (https://twitter.com/bernheisel) - Cade Ward - @cadebward (https://twitter.com/cadebward)
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 (http://podcast.thinkingelixir.com/96) Elixir Community News - https://github.com/livebook-dev/livebook/pull/1115 (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 (https://github.com/livebook-dev/livebook/discussions) – Livebook project announced and opened a Github Discussions section to the project. - https://github.com/phoenixframework/phoenixlivedashboard/pull/367 (https://github.com/phoenixframework/phoenix_live_dashboard/pull/367) – Full screen mode contribution added to Phoenix LiveDashboard project. - https://podcast.thinkingelixir.com/92 (https://podcast.thinkingelixir.com/92) – Mitch Hanberg talked with us previously about Temple - https://github.com/mhanberg/eexcompilervisualizer (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 (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 (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 (https://twitter.com/ThinkingElixir) or email at show@thinkingelixir.com (mailto:show@thinkingelixir.com) Discussion Resources - https://github.com/elixir-lang/elixir/blob/v1.10/CHANGELOG.md (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 (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 (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 (https://github.com/elixir-lang/elixir/blob/v1.12/CHANGELOG.md) – Elixir 1.12 changelog - https://www.erlang.org/eeps/eep-0054.html (https://www.erlang.org/eeps/eep-0054.html) – EEP 54 - Provide more information about errors - https://github.com/sasa1977/boundary (https://github.com/sasa1977/boundary) - https://hexdocs.pm/elixir/Enum.html#sort/2-sorting-structs (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://hexdocs.pm/elixir/Calendar.html#strftime/3) - https://github.com/elixir-nx/nx (https://github.com/elixir-nx/nx) - https://livebook.dev/ (https://livebook.dev/) - https://hexdocs.pm/mix/Mix.html#install/2 (https://hexdocs.pm/mix/Mix.html#install/2) - CMD+\ or CTRL+\ - https://github.com/doawoo/teex (https://github.com/doawoo/teex) - https://hexdocs.pm/elixir/Kernel.html (https://hexdocs.pm/elixir/Kernel.html) - https://hexdocs.pm/elixir/Kernel.html#then/2 (https://hexdocs.pm/elixir/Kernel.html#then/2) - https://hexdocs.pm/elixir/Kernel.html#tap/2 (https://hexdocs.pm/elixir/Kernel.html#tap/2) - https://hexdocs.pm/elixir/Range.html (https://hexdocs.pm/elixir/Range.html) - https://hexdocs.pm/elixir/Range.html#disjoint?/2 (https://hexdocs.pm/elixir/Range.html#disjoint?/2) - https://github.com/elixir-lang/elixir/blob/a64d42f5d3cb6c32752af9d3312897e8cd5bb7ec/lib/elixir/lib/range.ex#L249-L251 (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 (https://math.stackexchange.com/questions/1656120/formula-to-find-the-first-intersection-of-two-arithmetic-progressions) Guest Information - https://twitter.com/josevalim (https://twitter.com/josevalim) – on Twitter - https://github.com/josevalim (https://github.com/josevalim) – on Github - https://dashbit.co/ (https://dashbit.co/) – Dashbit website and blog - https://erlef.org/news/ (https://erlef.org/news/) – The Erlang Ecosystem Foundation news Find us online - Message the show - @ThinkingElixir (https://twitter.com/ThinkingElixir) - Email the show - show@thinkingelixir.com (mailto:show@thinkingelixir.com) - Mark Ericksen - @brainlid (https://twitter.com/brainlid) - David Bernheisel - @bernheisel (https://twitter.com/bernheisel) - Cade Ward - @cadebward (https://twitter.com/cadebward)
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 (http://podcast.thinkingelixir.com/95) Elixir Community News - https://github.com/phoenixframework/phoenix/pull/4742 (https://github.com/phoenixframework/phoenix/pull/4742) – Phoenix presence client - https://twitter.com/elixirphoenix/status/1511393478873427982 (https://twitter.com/elixirphoenix/status/1511393478873427982) – Twitter thread discussing the Phoenix presence client - https://hexdocs.pm/phoenixliveview/changelog.html#0-17-8-2022-04-06 (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/phoenixliveview/Phoenix.LiveView.HTMLFormatter.html (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/242) - https://github.com/elixir-lsp/vscode-elixir-ls/issues/241 (https://github.com/elixir-lsp/vscode-elixir-ls/issues/241) - https://github.com/DockYard/flame_on (https://github.com/DockYard/flame_on) – flameon library updated - https://dockyard.com/blog/2022/02/22/profiling-elixir-applications-with-flame-graphs-and-flame-on (https://dockyard.com/blog/2022/02/22/profiling-elixir-applications-with-flame-graphs-and-flame-on) – Original flameon announcement post for more info - https://twitter.com/sorentwo/status/1513630468490645509 (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/ (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 (https://podcast.thinkingelixir.com/92) – Previous interview with Mitchell Hanberg - https://exercism.org/tracks/elixir/exercises/take-a-number-deluxe (https://exercism.org/tracks/elixir/exercises/take-a-number-deluxe) – Exercism.io GenServer learning exercise was added. - https://twitter.com/atyborska93/status/1513807461043552256 (https://twitter.com/atyborska93/status/1513807461043552256) – Angelika shares about the Exercism.io update - https://twitter.com/whatyouhide/status/1512100896653590535 (https://twitter.com/whatyouhide/status/1512100896653590535) – Andrea Leopardi is working at Apple now on their Environment team. - https://www.apple.com/environment/ (https://www.apple.com/environment/) – More about the Apple Environment team - https://www.youtube.com/watch?v=R7t7zca8SyM (https://www.youtube.com/watch?v=R7t7zca8SyM) – “Elixir in 100 seconds” video Do you have some Elixir news to share? Tell us at @ThinkingElixir (https://twitter.com/ThinkingElixir) or email at show@thinkingelixir.com (mailto:show@thinkingelixir.com) Discussion Resources - https://dashbit.co/blog/rustler-precompiled (https://dashbit.co/blog/rustler-precompiled) - https://twitter.com/philipsampaio/status/1503809314489831441 (https://twitter.com/philipsampaio/status/1503809314489831441) - https://github.com/philss/rustler_precompiled (https://github.com/philss/rustler_precompiled) - https://github.com/philss/rustlerprecompilationexample (https://github.com/philss/rustler_precompilation_example) - https://github.com/philss/floki (https://github.com/philss/floki) - https://github.com/rusterlium/rustler (https://github.com/rusterlium/rustler) - https://github.com/servo/html5ever (https://github.com/servo/html5ever) - https://github.com/elixir-nx/nx (https://github.com/elixir-nx/nx) - https://hex.pm/packages?search=depends%3Ahexpm%3Arustler&sort=total_downloads (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://github.com/elixir-nx/nx/tree/main/nx#readme) - https://elixir-nx.github.io/explorer/Explorer.DataFrame.html (https://elixir-nx.github.io/explorer/Explorer.DataFrame.html) - https://www.pola.rs/ (https://www.pola.rs/) - https://github.com/discord/sortedsetnif (https://github.com/discord/sorted_set_nif) - https://ziglang.org/ (https://ziglang.org/) - https://github.com/ityonemo/zigler (https://github.com/ityonemo/zigler) - https://github.com/philss/rustlerprecompiled/blob/main/PRECOMPILATIONGUIDE.md (https://github.com/philss/rustler_precompiled/blob/main/PRECOMPILATION_GUIDE.md) - https://github.com/philss/rustlerprecompilationexample (https://github.com/philss/rustler_precompilation_example) Guest Information - https://twitter.com/philipsampaio (https://twitter.com/philipsampaio) – on Twitter - https://github.com/philss/ (https://github.com/philss/) – on Github - https://dashbit.co/blog (https://dashbit.co/blog) – Dashbit blog where he writes - https://phils.dev (https://phils.dev) – Personal blog Find us online - Message the show - @ThinkingElixir (https://twitter.com/ThinkingElixir) - Email the show - show@thinkingelixir.com (mailto:show@thinkingelixir.com) - Mark Ericksen - @brainlid (https://twitter.com/brainlid) - David Bernheisel - @bernheisel (https://twitter.com/bernheisel) - Cade Ward - @cadebward (https://twitter.com/cadebward)
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 (http://podcast.thinkingelixir.com/94) Elixir Community News - https://www.devsforukraine.io/ (https://www.devsforukraine.io/) – Devs for Ukraine online conference, April 25-26 - https://github.com/sorentwo/oban/pull/677 (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 (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 (https://podcast.thinkingelixir.com/43) – Previous show covering more about Membrane - https://supabase.com/blog/2022/03/30/supabase-enterprise#elixir-livebooks (https://supabase.com/blog/2022/03/30/supabase-enterprise#elixir-livebooks) – Supabase announced Livebooks for Supabase - https://github.com/supabase/livebooks (https://github.com/supabase/livebooks) - https://podcast.thinkingelixir.com/73 (https://podcast.thinkingelixir.com/73) – Previous show with Paul Copplestone about Supabase Do you have some Elixir news to share? Tell us at @ThinkingElixir (https://twitter.com/ThinkingElixir) or email at show@thinkingelixir.com (mailto:show@thinkingelixir.com) Discussion Resources - https://github.com/bencheeorg/benchee (https://github.com/bencheeorg/benchee) - https://pragtob.wordpress.com/2022/03/08/benchee-1-1-0-released-why-did-it-take-so-long/ (https://pragtob.wordpress.com/2022/03/08/benchee-1-1-0-released-why-did-it-take-so-long/) - http://www.pragtob.info/ (http://www.pragtob.info/) - https://github.com/PragTob?tab=repositories (https://github.com/PragTob?tab=repositories) – List of current github repositories - https://remote.com/ (https://remote.com/) - https://nextjs.org/ (https://nextjs.org/) – NextJS is react - https://spawnfest.org/ (https://spawnfest.org/) - https://github.com/github/scientist (https://github.com/github/scientist) – Scientist ruby gem - https://github.com/cwbriones/scientist (https://github.com/cwbriones/scientist) – Elixir port of the library - Application Performance Monitoring (APM) (Application Performance Monitoring (APM)) - https://en.wikipedia.org/wiki/Garbagecollection(computer_science) (https://en.wikipedia.org/wiki/Garbage_collection_(computer_science)) - https://www.youtube.com/watch?v=aqLujfzvUgM (https://www.youtube.com/watch?v=aqLujfzvUgM) – Devon Estes - Digging through the garbage - https://github.com/OvermindDL1 (https://github.com/OvermindDL1) - https://github.com/whatyouhide/stream_data (https://github.com/whatyouhide/stream_data) - https://www.rug-b.de/ (https://www.rug-b.de/) - https://github.com/bencheeorg/benchee/issues/313 (https://github.com/bencheeorg/benchee/issues/313) – Benchee Mac issue - https://www.shopify.com/ (https://www.shopify.com/) - https://rubygems.org/gems/simplecov (https://rubygems.org/gems/simplecov) - https://github.com/alco/benchfella (https://github.com/alco/benchfella) - https://rubygems.org/gems/benchmark-ips (https://rubygems.org/gems/benchmark-ips) - https://github.com/bencheeorg/benchee#hooks-setup-teardown-etc (https://github.com/bencheeorg/benchee#hooks-setup-teardown-etc) Guest Information - https://twitter.com/PragTob (https://twitter.com/PragTob) – on Twitter - https://github.com/PragTob/ (https://github.com/PragTob/) – on Github - http://www.pragtob.info/ (http://www.pragtob.info/) – Blog - https://pragtob.wordpress.com/ (https://pragtob.wordpress.com/) – Blog Find us online - Message the show - @ThinkingElixir (https://twitter.com/ThinkingElixir) - Email the show - show@thinkingelixir.com (mailto:show@thinkingelixir.com) - Mark Ericksen - @brainlid (https://twitter.com/brainlid) - David Bernheisel - @bernheisel (https://twitter.com/bernheisel) - Cade Ward - @cadebward (https://twitter.com/cadebward)
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 (http://podcast.thinkingelixir.com/93) Elixir Community News - https://erlef.org/blog/eef/election-2022-results (https://erlef.org/blog/eef/election-2022-results) – Erlang Ecosystem Foundation board election voting results - https://erlef.org/blog/eef/election-2022 (https://erlef.org/blog/eef/election-2022) – Previous election notice and explanations - https://hexdocs.pm/ex_doc/changelog.html (https://hexdocs.pm/ex_doc/changelog.html) – ExDoc v0.28.3 was released - https://twitter.com/josevalim/status/1508528099973120004 (https://twitter.com/josevalim/status/1508528099973120004) – Call to help move ExDoc away from webpack to esbuild - https://twitter.com/dominicletz/status/1506675402059792388 (https://twitter.com/dominicletz/status/1506675402059792388) – iOS app store now has an Elixir application deployed in it! - https://podcast.thinkingelixir.com/69 (https://podcast.thinkingelixir.com/69) – Previous interview with Dominic Letz about doing Elixir on the desktop and mobile. - https://www.erlang.org/news/155 (https://www.erlang.org/news/155) – Erlang 25.0 rc-2 was released and requesting feedback - https://twitter.com/josevalim/status/1507443537851392007 (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 (https://www.empex.co/mtn) – Empex MTN in Salt Lake City on May 6 - https://codesync.global/conferences/code-beam-sto-2022/ (https://codesync.global/conferences/code-beam-sto-2022/) – CodeBEAM in Stockholm on May 19-20 - https://www.elixirconf.eu/ (https://www.elixirconf.eu/) – ElixirConf EU in London on June 9-10 - https://elixirconf.com/events (https://elixirconf.com/events) – ElixirConf US in Colorado on August 30-Sep2 - https://github.com/lucasvegi/Elixir-Code-Smells (https://github.com/lucasvegi/Elixir-Code-Smells) – Elixir Code Smells - public project - https://fly.io/phoenix-files/safe-ecto-migrations/ (https://fly.io/phoenix-files/safe-ecto-migrations/) – Safe Ecto Migrations - https://twitter.com/TylerAYoung/status/1508413319178297352 (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 (https://twitter.com/ThinkingElixir) or email at show@thinkingelixir.com (mailto:show@thinkingelixir.com) Discussion Resources - https://www.paraxial.io/blog/throttle-requests (https://www.paraxial.io/blog/throttle-requests) - https://github.com/michalmuskala/plug_attack (https://github.com/michalmuskala/plug_attack) - https://owasp.org/Top10/ (https://owasp.org/Top10/) - https://github.com/magento/magento2/issues/28614 (https://github.com/magento/magento2/issues/28614) – What is a carding attack? - https://owasp.org/www-project-automated-threats-to-web-applications/ (https://owasp.org/www-project-automated-threats-to-web-applications/) - http://paraxial.io/ (http://paraxial.io/) - https://frame.io/ (https://frame.io/) - https://news.adobe.com/news/news-details/2021/Adobe-Completes-Acquisition-of-Frame.io/default.aspx (https://news.adobe.com/news/news-details/2021/Adobe-Completes-Acquisition-of-Frame.io/default.aspx) - https://www.metasploit.com/ (https://www.metasploit.com/) - https://www.crunchbase.com/ (https://www.crunchbase.com/) - https://owasp.org/www-community/attacks/Credential_stuffing (https://owasp.org/www-community/attacks/Credential_stuffing) - https://en.wikipedia.org/wiki/Webapplicationfirewall (https://en.wikipedia.org/wiki/Web_application_firewall) Guest Information - https://twitter.com/paraxialio (https://twitter.com/paraxialio) – on Twitter - https://github.com/paraxialio/ (https://github.com/paraxialio/) – on Github - https://paraxial.io/ (https://paraxial.io/) – Website - sales@paraxial.io Find us online - Message the show - @ThinkingElixir (https://twitter.com/ThinkingElixir) - Email the show - show@thinkingelixir.com (mailto:show@thinkingelixir.com) - Mark Ericksen - @brainlid (https://twitter.com/brainlid) - David Bernheisel - @bernheisel (https://twitter.com/bernheisel) - Cade Ward - @cadebward (https://twitter.com/cadebward)
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 (http://podcast.thinkingelixir.com/92) Elixir Community News - https://twitter.com/josevalim/status/1506248906979659782 (https://twitter.com/josevalim/status/1506248906979659782) – José shared his personal definition of a reduction as "energy". - https://twitter.com/thibaut_barrere/status/1501909747854942212 (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 (https://dashbit.co/blog/rustler-precompiled) – Rustler Precompiled project was announced on the Dashbit blog by Philip Sampaio - https://twitter.com/nervesproject/status/1504821571524964357 (https://twitter.com/nervesproject/status/1504821571524964357) – Lots of update Nerves releases on Hex - https://snyk.io/blog/peacenotwar-malicious-npm-node-ipc-package-vulnerability/ (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 (https://twitter.com/ThinkingElixir) or email at show@thinkingelixir.com (mailto:show@thinkingelixir.com) Discussion Resources - https://github.com/mhanberg/temple (https://github.com/mhanberg/temple) - https://github.com/mhanberg/tableau (https://github.com/mhanberg/tableau) - https://github.com/mhanberg/blog/tree/mh/tableau (https://github.com/mhanberg/blog/tree/mh/tableau) - https://github.com/elixir-wallaby/wallaby (https://github.com/elixir-wallaby/wallaby) - https://twitter.com/elixir_wallaby (https://twitter.com/elixir_wallaby) - https://www.selenium.dev/documentation/webdriver/ (https://www.selenium.dev/documentation/webdriver/) - https://github.com/markaby/markaby (https://github.com/markaby/markaby) - https://crystal-lang.org/ (https://crystal-lang.org/) - https://luckyframework.org/ (https://luckyframework.org/) - https://laravel.com/ (https://laravel.com/) - https://laravel.com/docs/9.x/blade (https://laravel.com/docs/9.x/blade) - https://github.com/elixir-lsp/elixir_sense (https://github.com/elixir-lsp/elixir_sense) - https://surface-ui.org/template_syntax (https://surface-ui.org/template_syntax) - https://surface-ui.org/ (https://surface-ui.org/) - https://teamcapybara.github.io/capybara/ (https://teamcapybara.github.io/capybara/) - https://hexdocs.pm/hound/readme.html (https://hexdocs.pm/hound/readme.html) - https://www.selenium.dev/ (https://www.selenium.dev/) - https://keathley.io/blog/concurrent-feature-testing-with-wallaby.html (https://keathley.io/blog/concurrent-feature-testing-with-wallaby.html) - https://github.com/elixir-wallaby/wallaby/discussions (https://github.com/elixir-wallaby/wallaby/discussions) - https://github.com/puppeteer/puppeteer (https://github.com/puppeteer/puppeteer) Guest Information - https://twitter.com/mitchhanberg (https://twitter.com/mitchhanberg) – on Twitter - https://github.com/mhanberg/ (https://github.com/mhanberg/) – on Github - https://www.mitchellhanberg.com (https://www.mitchellhanberg.com) – Blog Find us online - Message the show - @ThinkingElixir (https://twitter.com/ThinkingElixir) - Email the show - show@thinkingelixir.com (mailto:show@thinkingelixir.com) - Mark Ericksen - @brainlid (https://twitter.com/brainlid) - David Bernheisel - @bernheisel (https://twitter.com/bernheisel) - Cade Ward - @cadebward (https://twitter.com/cadebward)
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 (http://podcast.thinkingelixir.com/91) Elixir Community News - https://github.com/bencheeorg/benchee (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/ (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 (https://twitter.com/josevalim/status/1501482561511510018) – ExDoc gets a new minor feature that lets us syntax highlight HEEx templates - https://elixirpatterns.dev/ (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 (https://davelucia.com/blog/avro-2.0) – AvroEx 2.0 released - https://www.functionalconf.com/ (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 (https://twitter.com/ThinkingElixir) or email at show@thinkingelixir.com (mailto:show@thinkingelixir.com) Discussion Resources - https://podcast.thinkingelixir.com/82 (https://podcast.thinkingelixir.com/82) – Part 1 - https://podcast.thinkingelixir.com/87 (https://podcast.thinkingelixir.com/87) – Part 2 - https://github.com/elixir-lang/elixir/blob/v1.7/CHANGELOG.md (https://github.com/elixir-lang/elixir/blob/v1.7/CHANGELOG.md) – Elixir changelog for v1.7 - https://www.erlang.org/eeps/eep-0048 (https://www.erlang.org/eeps/eep-0048) – EEP 48 - https://hexdocs.pm/nx/Nx.html (https://hexdocs.pm/nx/Nx.html) - https://github.com/elixir-lang/elixir/blob/v1.8/CHANGELOG.md (https://github.com/elixir-lang/elixir/blob/v1.8/CHANGELOG.md) – Elixir changelog for v1.8 - https://hexdocs.pm/elixir/Kernel.html#guards (https://hexdocs.pm/elixir/Kernel.html#guards) – Elixir docs on guards - “dunder“ = a Double Underscore - https://hexdocs.pm/elixir/Protocol.html#derive/3 (https://hexdocs.pm/elixir/Protocol.html#derive/3) – Protocol derive - https://hexdocs.pm/elixir/Inspect.html#module-deriving (https://hexdocs.pm/elixir/Inspect.html#module-deriving) – Deriving for inspect - https://github.com/elixir-lang/elixir/blob/v1.9/CHANGELOG.md (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://hexdocs.pm/ecto/Ecto.Schema.html#field/3-options) - https://hex.pm/packages/datetimeparser (https://hex.pm/packages/date_time_parser) - https://github.com/bitwalker/distillery (https://github.com/bitwalker/distillery) – Mix package used for releases before it was built into Elixir. Guest Information - https://twitter.com/josevalim (https://twitter.com/josevalim) – on Twitter - https://github.com/josevalim (https://github.com/josevalim) – on Github - https://dashbit.co/ (https://dashbit.co/) – Dashbit website and blog - https://erlef.org/news/ (https://erlef.org/news/) – The Erlang Ecosystem Foundation news Find us online - Message the show - @ThinkingElixir (https://twitter.com/ThinkingElixir) - Email the show - show@thinkingelixir.com (mailto:show@thinkingelixir.com) - Mark Ericksen - @brainlid (https://twitter.com/brainlid) - David Bernheisel - @bernheisel (https://twitter.com/bernheisel) - Cade Ward - @cadebward (https://twitter.com/cadebward)
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 (http://podcast.thinkingelixir.com/90) Elixir Community News - https://lu.ma/elixir-social (https://lu.ma/elixir-social) – Elixir lunch is now Elixir social - https://twitter.com/josevalim/status/1499132873114361872 (https://twitter.com/josevalim/status/1499132873114361872) – The Phoenix HEEX template formatter now merged in to LiveView - https://twitter.com/nivenhuh/status/1483895710932078593 (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/ (https://www.apple.com/environment/) – Apple environment initiative - https://twitter.com/emjii/status/1500574395936485384 (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 (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/ (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 (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/ (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 (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 (https://twitter.com/ThinkingElixir) or email at show@thinkingelixir.com (mailto:show@thinkingelixir.com) Discussion Resources - https://twitter.com/elixircards (https://twitter.com/elixircards) – Elixir Cards Twitter account - https://twitter.com/gitcards (https://twitter.com/gitcards) – Git Cards Twitter account - https://www.elixircards.co.uk/ (https://www.elixircards.co.uk/) – Website for sales/marketing of Elixir Cards - https://gitflashcards.com/ (https://gitflashcards.com/) – Git cards website - https://pragprog.com/titles/elixir16/programming-elixir-1-6/ (https://pragprog.com/titles/elixir16/programming-elixir-1-6/) - https://hexdocs.pm/elixir/Enum.html (https://hexdocs.pm/elixir/Enum.html) - https://www.eng.auburn.edu/current-students/documents/forgetting-curve.pdf (https://www.eng.auburn.edu/current-students/documents/forgetting-curve.pdf) - https://kapeli.com/dash (https://kapeli.com/dash) – Dash tool on MacOS for combined documentation searching - https://zealdocs.org/ (https://zealdocs.org/) – Zeal is a Dash-like tool that is OpenSource and cross platform for Linux and Windows. - https://xkcd.com/1168/ (https://xkcd.com/1168/) – Comic about remembering Tar commands - sales@cleverbunny.io Guest Information - https://twitter.com/Tetiana12345678 (https://twitter.com/Tetiana12345678) – on Twitter - https://github.com/tetiana12345678 (https://github.com/tetiana12345678) – on Github - sales@cleverbunny.io Find us online - Message the show - @ThinkingElixir (https://twitter.com/ThinkingElixir) - Email the show - show@thinkingelixir.com (mailto:show@thinkingelixir.com) - Mark Ericksen - @brainlid (https://twitter.com/brainlid) - David Bernheisel - @bernheisel (https://twitter.com/bernheisel) - Cade Ward - @cadebward (https://twitter.com/cadebward)
89: Reducing the Friction in Your Flow
We talk about how designing applications with lower friction points is a valuable goal. LiveView plays a powerful role in that mission. Mark pitches why he thinks it's time to take another look at LiveView if you haven't lately. We talk over some of the business benefits, efficiencies gained and we address some common reasons given for "why it can't work." We also cover some remaining areas of improvement for LiveView. Then we talk about how moving your servers closer to users removes additional friction both for deployment and application design. Mark shares how the fly_postgres library works and how it enables people to build "normal" Phoenix applications using Postgres read-replicas across multiple regions. A fun discussion! Show Notes online - http://podcast.thinkingelixir.com/89 (http://podcast.thinkingelixir.com/89) Elixir Community News - https://erlef.org/blog/eef/election-2022 (https://erlef.org/blog/eef/election-2022) – Erlang Ecosystem Foundation is holding elections soon. You can get involved! - https://gleam.run/news/gleam-v0.20-released/ (https://gleam.run/news/gleam-v0.20-released/) – Gleam 0.20 released - https://twitter.com/louispilfold/status/1496108145185337344 (https://twitter.com/louispilfold/status/1496108145185337344) – Gleam source code is recognized as a language on GitHub and gets syntax highlighting - https://twitter.com/louispilfold/status/1497320401461993473 (https://twitter.com/louispilfold/status/1497320401461993473) – Work has begun on a Gleam Language Server - https://github.com/DockYard/flame_on (https://github.com/DockYard/flame_on) – New performance analyzing library released by Dockyard called "flameon" - https://dockyard.com/blog/2022/02/22/profiling-elixir-applications-with-flame-graphs-and-flame-on (https://dockyard.com/blog/2022/02/22/profiling-elixir-applications-with-flame-graphs-and-flame-on) – Post explains more about the flameon library Do you have some Elixir news to share? Tell us at @ThinkingElixir (https://twitter.com/ThinkingElixir) or email at show@thinkingelixir.com (mailto:show@thinkingelixir.com) Discussion Resources - https://www.youtube.com/watch?v=IqnZnFpxLjI (https://www.youtube.com/watch?v=IqnZnFpxLjI) – Mark's 2021 Elixir Conf talk - https://github.com/readme/featured/server-side-languages-for-front-end (https://github.com/readme/featured/server-side-languages-for-front-end) – GitHub article "Move over JavaScript - Back-end languages are coming to the front-end" - https://utils.zest.dev/gendiff (https://utils.zest.dev/gendiff) – David's Phoenix version diffing tool - https://github.com/superfly/flyrpcelixir (https://github.com/superfly/fly_rpc_elixir) - https://github.com/superfly/flypostgreselixir (https://github.com/superfly/fly_postgres_elixir) - https://fly.io/docs/getting-started/elixir/ (https://fly.io/docs/getting-started/elixir/) - https://fly.io/docs/reference/regions/ (https://fly.io/docs/reference/regions/) - https://podcast.thinkingelixir.com/20 (https://podcast.thinkingelixir.com/20) – Caleb Porzio interview - https://plausible.io/ (https://plausible.io/) Find us online - Message the show - @ThinkingElixir (https://twitter.com/ThinkingElixir) - Email the show - show@thinkingelixir.com (mailto:show@thinkingelixir.com) - Mark Ericksen - @brainlid (https://twitter.com/brainlid) - David Bernheisel - @bernheisel (https://twitter.com/bernheisel) - Cade Ward - @cadebward (https://twitter.com/cadebward)
88: Phoenix Debug Toolbar and LiveView Forms with Michael Crumm
We talk with Michael Crumm, the primary author of the Phoenix Live Dashboard, about a new project of his. He is working on a development toolbar that is rendered on your pages and helps profile performance, expose route info, show crash info and more. It’s called PhoenixProfiler and it ties into Telemetry events for data. While still early, it can be a great tool for teams. We also talk about another goal of his, to improve working with forms in LiveView! Show Notes online - http://podcast.thinkingelixir.com/88 (http://podcast.thinkingelixir.com/88) Elixir Community News - https://github.com/J3RN/tree-sitter-gleam (https://github.com/J3RN/tree-sitter-gleam) – Gleam gets tree-sitter support - https://www.erlang.org/news/153 (https://www.erlang.org/news/153) – Erlang/OTP 25.0-rc1, (Release Candidate 1) - https://twitter.com/stfnlptk/status/1494329717259837443 (https://twitter.com/stfnlptk/status/1494329717259837443) – Speed improvements for compiling on M1 chips - New ETS table option {writeconcurrency, auto} - https://github.com/erlang/otp/pull/4719 (https://github.com/erlang/otp/pull/4719) – erlang:floatto_binary/2 has new short option - https://www.erlang.org/eeps/eep-0049 (https://www.erlang.org/eeps/eep-0049) – Improved the JIT’s support for tools perf and gdb - https://hexdocs.pm/ex_doc/readme.html#admonition-blocks (https://hexdocs.pm/ex_doc/readme.html#admonition-blocks) – New "Admonition Blocks" feature added to ExDoc - https://twitter.com/brooklinjmyers/status/1494813972750483457 (https://twitter.com/brooklinjmyers/status/1494813972750483457) – Brooklin Myers working on a Livebook "carousel" feature - Ability to create custom Livebook controls using Kino.JS.Live and Kino.JS - https://github.com/cocoa-xu/otter (https://github.com/cocoa-xu/otter) – Otter project - "Call C functions in a shared library without writing a NIF" - https://podcast.thinkingelixir.com/85 (https://podcast.thinkingelixir.com/85) – Interview with Cocoa Do you have some Elixir news to share? Tell us at @ThinkingElixir (https://twitter.com/ThinkingElixir) or email at show@thinkingelixir.com (mailto:show@thinkingelixir.com) Discussion Resources - https://github.com/mcrumm/phoenix_profiler (https://github.com/mcrumm/phoenix_profiler) – Phoenix debug toolbar profiler - https://github.com/phoenixframework/phoenixlivedashboard (https://github.com/phoenixframework/phoenix_live_dashboard) – Live Dashboard project - https://www.cargosense.com/ (https://www.cargosense.com/) - https://www.manning.com/books/the-little-elixir-and-otp-guidebook (https://www.manning.com/books/the-little-elixir-and-otp-guidebook) - https://hexdocs.pm/iex/IEx.Pry.html (https://hexdocs.pm/iex/IEx.Pry.html) - https://symfony.com/ (https://symfony.com/) - https://symfony.com/doc/current/profiler.html (https://symfony.com/doc/current/profiler.html) - https://github.com/jazzband/django-debug-toolbar (https://github.com/jazzband/django-debug-toolbar) - https://github.com/MiniProfiler/rack-mini-profiler (https://github.com/MiniProfiler/rack-mini-profiler) - https://github.com/dejan/rails_panel (https://github.com/dejan/rails_panel) Guest Information - Michael Allen Crumm Jr. - https://twitter.com/mcrumm (https://twitter.com/mcrumm) – on Twitter - https://github.com/mcrumm/ (https://github.com/mcrumm/) – on Github Find us online - Message the show - @ThinkingElixir (https://twitter.com/ThinkingElixir) - Email the show - show@thinkingelixir.com (mailto:show@thinkingelixir.com) - Mark Ericksen - @brainlid (https://twitter.com/brainlid) - David Bernheisel - @bernheisel (https://twitter.com/bernheisel) - Cade Ward - @cadebward (https://twitter.com/cadebward)
87: Reviewing Elixir with José Valim - Part 2
José Valim returns to continue with part 2 of our 5 part series as we count down to the 10 year anniversary of the Elixir project we know and love. In Part 2, we talk through the Elixir releases of 1.4, 1.5, and 1.6. We still manage to sneak in discussions about some new things in Elixir 1.13 and the upcoming release. We go deeper on GenStage, Registry, and growing up through production releases. We also learn about the history with unicode while touching on the recent unicode security issues that hit everywhere. We get some behind the scenes insights about the Elixir formatter and the complex logic required to bring ExUnit's pretty diff features, and much more! Show Notes online - http://podcast.thinkingelixir.com/87 (http://podcast.thinkingelixir.com/87) Elixir Community News - https://twitter.com/importantshock/status/1491835261705199620 (https://twitter.com/importantshock/status/1491835261705199620) – GitHub code search based navigation now works with Elixir - https://twitter.com/josevalim/status/1491833991401463809 (https://twitter.com/josevalim/status/1491833991401463809) – José Valim credits the work and says the 10th language to get this feature. - https://github.com/github/roadmap/issues/445 (https://github.com/github/roadmap/issues/445) – GitHub public roadmap item - Advisory Database, Elixir/mix support - https://github.com/dependabot/elixir-security-advisories (https://github.com/dependabot/elixir-security-advisories) – Dependabot Elixir security advisories - https://github.com/readme/featured/server-side-languages-for-front-end (https://github.com/readme/featured/server-side-languages-for-front-end) – GitHub published an article feature Elixir and LiveView - https://anchor.fm/helloerlang (https://anchor.fm/helloerlang) – New Erlang focused podcast called “Hello Erlang!” - https://twitter.com/josevalim/status/1492464780480856069 (https://twitter.com/josevalim/status/1492464780480856069) – New versions of makeup, flow, nimbleparsec, nimblepool, and plug were released. - https://github.com/elixir-makeup/makeup (https://github.com/elixir-makeup/makeup) – Makeup is a "generic syntax highlighter" used in ExDoc - https://github.com/dashbitco/nimble_parsec (https://github.com/dashbitco/nimble_parsec) - https://github.com/dashbitco/flow (https://github.com/dashbitco/flow) - https://github.com/elixir-plug/plug (https://github.com/elixir-plug/plug) Do you have some Elixir news to share? Tell us at @ThinkingElixir (https://twitter.com/ThinkingElixir) or email at show@thinkingelixir.com (mailto:show@thinkingelixir.com) Discussion Resources - https://podcast.thinkingelixir.com/82 (https://podcast.thinkingelixir.com/82) – Part 1 - Episode 82 - https://github.com/elixir-lang/elixir/blob/v1.4/CHANGELOG.md (https://github.com/elixir-lang/elixir/blob/v1.4/CHANGELOG.md) – CHANGELOG v1.4 - https://elixirforum.com/ (https://elixirforum.com/) - https://en.wikipedia.org/wiki/Embarrassingly_parallel (https://en.wikipedia.org/wiki/Embarrassingly_parallel) - https://hexdocs.pm/flow/Flow.html (https://hexdocs.pm/flow/Flow.html) - https://hexdocs.pm/elixir/Task.html#async_stream/3 (https://hexdocs.pm/elixir/Task.html#async_stream/3) - https://hexdocs.pm/elixir/Registry.html (https://hexdocs.pm/elixir/Registry.html) - https://github.com/bitwalker/distillery (https://github.com/bitwalker/distillery) - https://github.com/elixir-lang/elixir/blob/v1.5/CHANGELOG.md (https://github.com/elixir-lang/elixir/blob/v1.5/CHANGELOG.md) – CHANGELOG v1.5 - https://github.com/phoenixframework/phoenix/blob/v1.3/CHANGELOG.md (https://github.com/phoenixframework/phoenix/blob/v1.3/CHANGELOG.md) – Phoenix 1.3 released - https://trojansource.codes/ (https://trojansource.codes/) - https://hexdocs.pm/iex/IEx.Pry.html (https://hexdocs.pm/iex/IEx.Pry.html) - https://www.youtube.com/watch?v=p4uE-jTB_Uk (https://www.youtube.com/watch?v=p4uE-jTB_Uk) – The Feature That No One Knew About in Elixir 1.5 - José Valim - https://github.com/rrrene/credo (https://github.com/rrrene/credo) - https://github.com/elixir-lang/elixir/blob/v1.6/CHANGELOG.md (https://github.com/elixir-lang/elixir/blob/v1.6/CHANGELOG.md) – CHANGELOG v1.6 - https://medium.com/@JakeBeckerCode/introducing-elixirls-the-elixir-language-server-d449bbbdfc01 (https://medium.com/@JakeBeckerCode/introducing-elixirls-the-elixir-language-server-d449bbbdfc01) - mix test --slowest 3 - CMD+\ or CTRL+\ Guest Information - https://twitter.com/josevalim (https://twitter.com/josevalim) – on Twitter - https://github.com/josevalim (https://github.com/josevalim) – on Github - https://dashbit.co/ (https://dashbit.co/) – Dashbit website and blog - https://erlef.org/news/ (https://erlef.org/news/) – The Erlang Ecosystem Foundation news Find us online - Message the show - @ThinkingElixir (https://twitter.com/ThinkingElixir) - Email the show - show@thinkingelixir.com (mailto:show@thinkingelixir.com) - Mark Ericksen - @brainlid (https://twitter.com/brainlid) - David Bernheisel - @bernheisel (https://twitter.com/bernheisel) - Cade Ward - @cadebward (https://twitter.com/cadebward)
86: SavvyCal and Indie SaaS with Derrick Reimer
We talk with Derrick Reimer about his product SavvyCal. He used Elixir as a solo dev to create a service that can take on an 800lb gorilla like Calendly. He shares what competitive advantages he feels he has both from Elixir but also in being more nimble. We also talk about creating a company as an independent, solo developer and how that can work. Derrick shares some tips and resources that were helpful for him on his journey. We feel the PETAL stack positions Elixir developers well for optionally taking that Indie path if desired. Check it out! Lots of nuggets here! Show Notes online - http://podcast.thinkingelixir.com/86 (http://podcast.thinkingelixir.com/86) Elixir Community News - https://twitter.com/josevalim/status/1488640181364273160 (https://twitter.com/josevalim/status/1488640181364273160) – Livebook Kino gets a new Youtube control feature - https://twitter.com/josevalim/status/1489234959592214531 (https://twitter.com/josevalim/status/1489234959592214531) – Only display LiveView topbar progress animation after a delay - https://github.com/phoenixframework/phoenixliveview/commit/22ac99b108a167c324182f22be369aeea9eff346 (https://github.com/phoenixframework/phoenix_live_view/commit/22ac99b108a167c324182f22be369aeea9eff346) – Commit showing the topbar changes to add delay - https://fly.io/phoenix-files/make-your-liveview-feel-faster/ (https://fly.io/phoenix-files/make-your-liveview-feel-faster/) – Mark's blog post about the topbar progress delay - https://twitter.com/josevalim/status/1489522409426325504 (https://twitter.com/josevalim/status/1489522409426325504) – Ecto minimal cheatsheet - https://twitter.com/innovation_code/status/1490729612892069889 (https://twitter.com/innovation_code/status/1490729612892069889) – Grisp2 boards are shipping - https://www.kickstarter.com/projects/peerstritzinger/grisp-2 (https://www.kickstarter.com/projects/peerstritzinger/grisp-2) – Grisp2 Kickstarter project - https://medium.com/opentelemetry/opentelemetry-erlang-elixir-javascript-and-ruby-v1-0-3a0c32e0add4 (https://medium.com/opentelemetry/opentelemetry-erlang-elixir-javascript-and-ruby-v1-0-3a0c32e0add4) – OpenTelemetry for Elixir/Erlang reached 1.0 - https://hex.pm/orgs/opentelemetry (https://hex.pm/orgs/opentelemetry) – OpenTelemetry group - https://www.germanvelasco.com/blog/starting-elixir-lunch (https://www.germanvelasco.com/blog/starting-elixir-lunch) – German Velasco is starting a remote Elixir lunch - https://github.com/fly-apps/live_beats (https://github.com/fly-apps/live_beats) – LiveBeats project works great as an example Do you have some Elixir news to share? Tell us at @ThinkingElixir (https://twitter.com/ThinkingElixir) or email at show@thinkingelixir.com (mailto:show@thinkingelixir.com) Discussion Resources - https://twitter.com/derrickreimer (https://twitter.com/derrickreimer) - https://twitter.com/savvycal (https://twitter.com/savvycal) - https://savvycal.com/ (https://savvycal.com/) - https://twitter.com/frigidcode/status/1477656247772094467 (https://twitter.com/frigidcode/status/1477656247772094467) - https://artofproductpodcast.com/ (https://artofproductpodcast.com/) – Podcast Derrick co-hosts - https://www.drip.com/ (https://www.drip.com/) - https://github.com/whitfin/cachex (https://github.com/whitfin/cachex) - https://www.amazon.com/Lost-Founder-Painfully-Honest-Startup/dp/0735213321 (https://www.amazon.com/Lost-Founder-Painfully-Honest-Startup/dp/0735213321) - https://tinyseed.com/ (https://tinyseed.com/) - https://microconf.com/ (https://microconf.com/) - https://www.indiehackers.com/ (https://www.indiehackers.com/) - https://www.derrickreimer.com/books-for-founders (https://www.derrickreimer.com/books-for-founders) – List of books Derrick recommends Guest Information - https://twitter.com/derrickreimer (https://twitter.com/derrickreimer) – on Twitter - https://github.com/derrickreimer/ (https://github.com/derrickreimer/) – on Github - http://derrickreimer.com/ (http://derrickreimer.com/) – Blog - http://savvycal.com/ (http://savvycal.com/) – SavvyCal website Find us online - Message the show - @ThinkingElixir (https://twitter.com/ThinkingElixir) - Email the show - show@thinkingelixir.com (mailto:show@thinkingelixir.com) - Mark Ericksen - @brainlid (https://twitter.com/brainlid) - David Bernheisel - @bernheisel (https://twitter.com/bernheisel) - Cade Ward - @cadebward (https://twitter.com/cadebward)
85: Computer Vision in Elixir with Cocoa Xu
We talk with Cocoa Xu about his PhD robotics project and his related Evision project that creates Elixir bindings to the OpenCV library. The project enables computer vision in Elixir much easier by building on existing projects. We learn about the kinds of features this enables and how it can target embedded devices as well. His goal of a clustered, collaborative, hoard of Elixir robots is terrifyingly fascinating! 😄 Show Notes online - http://podcast.thinkingelixir.com/85 (http://podcast.thinkingelixir.com/85) Elixir Community News - https://github.com/livebook-dev/livebook/pull/948 (https://github.com/livebook-dev/livebook/pull/948) – New feature added to Livebook draws red squiggly lines under syntax errors. - https://tecnoblog.net/noticias/2022/01/24/as-5-linguagens-de-programacao-mais-usadas-no-brasil-segundo-o-github/ (https://tecnoblog.net/noticias/2022/01/24/as-5-linguagens-de-programacao-mais-usadas-no-brasil-segundo-o-github/) – Elixir is the 5th most growing programming language in Brazil in 2021 on GitHub. Article in Portuguese. - https://pragprog.com/titles/liveview/programming-phoenix-liveview/ (https://pragprog.com/titles/liveview/programming-phoenix-liveview/) – Updated version of the book "Programming Phoenix LiveView" - https://twitter.com/akoutmos/status/1487545038632628245 (https://twitter.com/akoutmos/status/1487545038632628245) – Inspired by episode 81 about "burrito", Alex Koutmos created a json terminal tool in Elixir - https://gist.github.com/akoutmos/f14e0f719b4efbee2526858b34869004 (https://gist.github.com/akoutmos/f14e0f719b4efbee2526858b34869004) – Alex shared a Gist so people can do this themselves - https://github.com/elixir-lang/elixir/releases/tag/v1.13.2 (https://github.com/elixir-lang/elixir/releases/tag/v1.13.2) – Elixir v1.13.2 with enhanced "mix format" support and more - https://github.com/feliperenan/heex_formatter (https://github.com/feliperenan/heex_formatter) – New alpha state library is a HEEx formatter - https://fly.io/blog/free-postgres/ (https://fly.io/blog/free-postgres/) – Hosting provider Fly.io announced free Postgres databases. Do you have some Elixir news to share? Tell us at @ThinkingElixir (https://twitter.com/ThinkingElixir) or email at show@thinkingelixir.com (mailto:show@thinkingelixir.com) Discussion Resources - https://github.com/cocoa-xu/evision (https://github.com/cocoa-xu/evision) - https://twitter.com/brainlid/status/1470588461371568129 (https://twitter.com/brainlid/status/1470588461371568129) - https://github.com/opencv/opencv (https://github.com/opencv/opencv) - https://pypi.org/project/opencv-python/ (https://pypi.org/project/opencv-python/) - https://github.com/cocoa-xu/evision/tree/main/examples (https://github.com/cocoa-xu/evision/tree/main/examples) – Usage examples that part of the repo - https://cocoa-xu.github.io/evision/ (https://cocoa-xu.github.io/evision/) – Online docs at the moment - https://twitter.com/uwucocoa/status/1466898968164679696 (https://twitter.com/_uwu_cocoa/status/1466898968164679696) - https://github.com/opencv/opencv (https://github.com/opencv/opencv) – Open Source Computer Vision Guest Information - https://twitter.com/uwucocoa (https://twitter.com/_uwu_cocoa) – on Twitter - https://github.com/cocoa-xu/ (https://github.com/cocoa-xu/) – on Github - https://cocoa-research.works/ (https://cocoa-research.works/) – Blog Find us online - Message the show - @ThinkingElixir (https://twitter.com/ThinkingElixir) - Email the show - show@thinkingelixir.com (mailto:show@thinkingelixir.com) - Mark Ericksen - @brainlid (https://twitter.com/brainlid) - David Bernheisel - @bernheisel (https://twitter.com/bernheisel) - Cade Ward - @cadebward (https://twitter.com/cadebward)
84: LiveBeats with Chris McCord
We talk with Chris McCord about the LiveBeats project he created. It’s a high-quality, showcase, open source project that highlights new and powerful features in LiveView. LiveBeats is a social music playing application that challenges current ideas about what LiveView is able to do. It uses presence, new JS features, defines reusable Tailwind styled components, includes accessibility and more! An exciting project that people can actually use in addition to being a great community resource. We also get into what’s coming out in Phoenix 1.7 that may interest people getting ready to start a new project! Show Notes online - http://podcast.thinkingelixir.com/84 (http://podcast.thinkingelixir.com/84) Elixir Community News - https://news.livebook.dev/v0.5-flowcharts-custom-widgets-intellisense-and-ui-improvements-4FcvbG (https://news.livebook.dev/v0.5-flowcharts-custom-widgets-intellisense-and-ui-improvements-4FcvbG) – Livebook 0.5 released blog post - https://twitter.com/josevalim/status/1483907938590810118 (https://twitter.com/josevalim/status/1483907938590810118) – José Valim's Twitter thread announcing the release - https://twitter.com/josevalim/status/1484915718223286276 (https://twitter.com/josevalim/status/1484915718223286276) – Livebook future release will include BEAM memory display on the sidebar - https://github.com/mcrumm/liveuploadexample/commit/8be00c0d451f94ad82860a9b85ab020092e2a8b7 (https://github.com/mcrumm/live_upload_example/commit/8be00c0d451f94ad82860a9b85ab020092e2a8b7) – Michael Crumm shared his PR that updated the liveviewupload example to HEEx templates as an example - https://www.empex.co/mtn (https://www.empex.co/mtn) – Empex MTN is Elixir conference in Salt Lake City, UT on May 6, 2022 - https://twitter.com/sorentwo/status/1478021043486928896 (https://twitter.com/sorentwo/status/1478021043486928896) – Oban Pro feature makes it easy to get the result of an async job Do you have some Elixir news to share? Tell us at @ThinkingElixir (https://twitter.com/ThinkingElixir) or email at show@thinkingelixir.com (mailto:show@thinkingelixir.com) Discussion Resources - https://fly.io/blog/livebeats/ (https://fly.io/blog/livebeats/) – Blog post by Chris where he talks about the project. - https://github.com/fly-apps/live_beats (https://github.com/fly-apps/live_beats) – Source code for the project. - https://livebeats.fly.dev/ (https://livebeats.fly.dev/) – Visit the running hosted app. - https://livebeats.fly.dev/signin (https://livebeats.fly.dev/signin) - https://fly.io/phoenix-files/tailwind-standalone/ (https://fly.io/phoenix-files/tailwind-standalone/) - https://github.com/phoenixframework/tailwind (https://github.com/phoenixframework/tailwind) - https://fly.io/phoenix-files/live-render-sticky-option/ (https://fly.io/phoenix-files/live-render-sticky-option/) - https://github.com/petalframework/petal_components (https://github.com/petalframework/petal_components) - https://milligram.io/ (https://milligram.io/) - https://github.com/phoenixframework/phoenix/pull/4100 (https://github.com/phoenixframework/phoenix/pull/4100) - https://surface-ui.org/getting_started (https://surface-ui.org/getting_started) Guest Information - https://twitter.com/chris_mccord (https://twitter.com/chris_mccord) – on Twitter - https://github.com/chrismccord (https://github.com/chrismccord) – on Github - http://chrismccord.com/ (http://chrismccord.com/) – Blog - https://twitter.com/flydotio (https://twitter.com/flydotio) – Fly.io on Twitter Find us online - Message the show - @ThinkingElixir (https://twitter.com/ThinkingElixir) - Email the show - show@thinkingelixir.com (mailto:show@thinkingelixir.com) - Mark Ericksen - @brainlid (https://twitter.com/brainlid) - David Bernheisel - @bernheisel (https://twitter.com/bernheisel) - Cade Ward - @cadebward (https://twitter.com/cadebward)