Thinking Elixir Podcast ThinkingElixir.com
-
- Utbildning
-
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!
-
195: Migrating from Next.js to Phoenix
In this compelling episode, we sit down with Ben Reinhart who shares his journey of transitioning from the JavaScript ecosystem, specifically migrating off of Next.js and Vercel, to Elixir and Phoenix, with Fly.io as the new host. Ben discusses his frustrations with the complexity and performance issues he faced, and how the switch to Elixir helped streamline operations and improve the efficiency of his AI-focused product at Axflow. He delves into his strategic choice for leveraging the operational simplicity and real-time features of Phoenix, while also acknowledging trade-offs such as rebuilding front-end components. Join us to explore Ben's story, learn about the features of Elixir that helped him, and discover how the move has influenced Axflow's path towards finding product-market fit, and more!
Show Notes online - http://podcast.thinkingelixir.com/195
Elixir Community News
Update on the phoenix_live_reload package to v1.5 containing useful tips.
https://www.elixirstreams.com/tips/stream_server_logs_to_console – Tips on how to stream Elixir server logs to the browser console.
https://github.com/phoenixframework/phoenix_live_reload?tab=readme-ov-file#streaming-serving-logs-to-the-web-console – Documentation on streaming Elixir server logs to the web console using phoenix_live_reload v1.5.
Advise to change Appearance theme to "Dark" in the browser console for better readability of debug-level messages.
https://github.com/phoenixframework/phoenix_live_reload?tab=readme-ov-file#jumping-to-heex-function-definitions – Information on the new feature "Jumping to HEEx function definitions" in phoenix_live_reload v1.5.
https://blog.appsignal.com/2024/03/19/direct-file-uploads-to-amazon-s3-with-phoenix-liveview.html – A new blog post by Joshua Plique about uploading files directly to S3 using Phoenix LiveView.
https://hexdocs.pm/phoenix_live_view/uploads-external.html – Official Phoenix documentation on direct file uploads to external services like S3.
https://x.com/whatyouhide/status/1768345597369532660 – Andrea Leopardi working on integrating Open Telemetry (OTel) with Sentry for the Elixir SDK.
https://github.com/getsentry/sentry-elixir/issues/538 – A Github issue discussing the integration of OTel with Sentry's Elixir SDK.
https://twitter.com/TylerAYoung/status/1769741350126149857 – Tyler Young's tip for keeping Elixir tests running faster and asynchronously by using the Process dictionary instead of Application environment.
https://saltycrackers.dev/posts/bye-bye-async-false/ – An article discussing how to avoid async false in tests by using the Process dictionary.
https://github.com/jbsf2/process-tree – Introduction of a new Elixir library, ProcessTree, to navigate the process ancestry hierarchy and aid in better test configuration.
Advice on using the process dictionary check only in MIX_ENV=test to prevent runtime overhead in production.
Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com
Discussion Resources
https://axflow.dev/
https://twitter.com/benjreinhart/status/1758616465589014531
https://exercism.org/tracks/elixir
https://www.youtube.com/watch?v=JvBT4XBdoUE
https://www.typescriptlang.org/
https://nextjs.org/
https://vercel.com/
https://supabase.com/
https://remix.run/
https://inertiajs.com/
https://vitejs.dev/
https://github.com/fidr/phoenix_live_react
https://github.com/geolessel/react-phoenix
https://www.pinterest.com/
https://fly.io/docs/gpus/
Guest Information
https://twitter.com/benjreinhart – Ben on Twitter
https://twitter.com/axflow_dev – AxFlow on Twitter
https://github.com/benjreinhart/ – on Github
https://benreinhart.com/ – Blog
https://axflow.dev/ – AxFlow Website
Find us online
Message the show - @ThinkingElixir
Message the show on Fediverse - @ThinkingElixir@genserver.social
Email the show - show@thinkingelixir.com
Mark Ericksen - @brainlid
Mark Ericksen on Fediverse - @brainlid@genserver.social
Dav -
194: Operational Elixir: Knowing When to Grow Up
In the final installment of our series, we sit down with the creator of the Ash framework, Zach Daniel, to move beyond his expertise in Ash and explore his experiences with the other systems we use to support our Elixir applications. Zach shares his journey from the dynamic environment of startups to the structured world of midsize companies, giving us a glimpse into the strategic timing for scaling monitoring and data collection tools. He emphasizes the value of fostering a blame-free culture and sheds light on his hands-on encounters with deployments, Kubernetes, and more!
Show Notes online - http://podcast.thinkingelixir.com/194
Elixir Community News
https://github.com/erlang/otp/pull/8111 – The json module was merged into Erlang OTP, adding it to the standard library and is expected to be included in OTP 27 RC 2.
https://github.com/elixir-lang/elixir/blob/v1.16/CHANGELOG.md#v1162-2024-03-10 – Release notes for Elixir v1.16.2, detailing bug fixes and minor additions.
https://elixir-lang.org/blog/2024/03/05/veeps-elixir-case/ – A new case study on scaling a streaming service for hundreds of thousands of concurrent viewers using Elixir at Veeps.
https://github.com/elixir-unicode/unicode_string – Kip Cole's Unicode String library release 1.4.0 includes dictionary-based word breaking for several Asian languages.
https://github.com/jonatanklosko/mix_install_watcher/ – Jonatan Kłosko's project, mix_install_watcher, assists with automatic recompilation of path dependencies in Livebook notebooks.
https://twitter.com/germsvel/status/1767499526309347739 – German Velasco shares a video example of an anti-pattern in Elixir documentation related to complex extraction in clauses.
https://hexdocs.pm/elixir/code-anti-patterns.html#complex-extractions-in-clauses – Detailed documentation regarding code anti-patterns in Elixir, specifically "complex extractions in clauses."
https://github.com/abdelaz3r/sparkline_svg – SparklineSVG v0.4 released, providing a simple, zero-dependency Elixir library for generating SVG sparkline charts.
https://hexdocs.pm/sparkline_svg/changelog.html – Changelog for SparklineSVG library showcasing recent updates and features.
Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com
Discussion Resources
https://ash-hq.org/
https://alembic.com.au/
https://podcast.thinkingelixir.com/27 – Previous interview with Zach about Ash
https://podcast.thinkingelixir.com/123 – Previous interview with Zach about Ash
https://github.com/spandex-project/spandex
https://opentelemetry.io/
https://www.appsignal.com/
https://www.datadoghq.com/
https://zipkin.io/
https://posthog.com/
https://segment.com/
https://github.com/cabol/nebulex
https://mode.com/
https://www.tableau.com/
https://postmarkapp.com/
Async is the NOT answer you think it is.
Declarative programming is so important and beneficial. It's worth learning more about it.
Guest Information
https://twitter.com/ZachSDaniel1 – Zach on Twitter
https://twitter.com/AshFramework – Ash Framework on Twitter
https://github.com/zachdaniel/ – on Github
https://genserver.social/zachdaniel – on Fediverse
https://zachdaniel.dev/about – Blog
https://ash-hq.org – Ash Framework site
Find us online
Message the show - @ThinkingElixir
Message the show on Fediverse - @ThinkingElixir@genserver.social
Email the show - show@thinkingelixir.com
Mark Ericksen - @brainlid
Mark Ericksen on Fediverse - @brainlid@genserver.social
David Bernheisel - @bernheisel
David Bernheisel on Fediverse - @dbern@genserver.social
Cade Ward - @cadebward
Cade Ward on Fediverse - @cadebward@genserver.social
Sponsored By:
Fly.io: Fly.io is a great place to deploy your next Phoenix application! Check them out! -
193: Operational Elixir: Observing the Midsize Madness
In this engaging third episode of our series, Dave Lucia returns to delve into the various systems that support small and medium-sized teams and companies for their Elixir systems. Dave shares insights gained from a range of situations including working at startups on up to Series C and D sized companies, with a particular focus on the critical role of observability tools. Drawing on his extensive experience, Dave discusses how these tools can greatly enhance a team's ability to monitor and troubleshoot applications, ensuring high performance and reliability. Tune in for a comprehensive look at the essential systems and tools that can make a tangible difference in the day-to-day operations of Elixir-powered organizations, and more!
Show Notes online - http://podcast.thinkingelixir.com/193
Elixir Community News
https://twitter.com/josevalim/status/1762921819776934146 – José Valim has teased a new feature for Elixir 1.17 which may include a mix test flag --breakpoints for debugging failed tests.
https://gleam.run/news/gleam-version-1/ – Gleam v1.0 has been released, marking the language's stability and readiness for production with a commitment to maintain backwards compatibility.
https://github.com/underjord/entrace – Lars Wikman shared his work on the Entrace tracing project, offering easier tracing support to applications.
https://github.com/underjord/entrace_live_dashboard – Entrac LiveDashboard was announced by Lars Wikman to add a tracing page to the LiveDashboard plugin.
https://docs.google.com/forms/d/e/1FAIpQLSeGxJUadP1CaaU6EnTwe7Hv76RnBLIiqT6SJLIBvncHcEzGRg/viewform – The Call for Proposals for talks at ElixirConfUS is open, including information to book hotel rooms for the event taking place from August 28-30, 2024.
Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com
Discussion Resources
https://podcast.thinkingelixir.com/75 – Previous interview with Dave Lucia talking about RabbitMQ and Commanded
https://podcast.thinkingelixir.com/97 – Previous interview with Dave Lucia talking about Avro and Elixir
https://podcast.thinkingelixir.com/129 – Previous interview with Dave Lucia talking about Time series data with Timescale DB
https://Sentry.io
https://www.servicenow.com/products/observability.html – Observability tool formerly knowns as LightStep
https://www.honeycomb.io/
https://opentelemetry.io/docs/collector/
https://github.com/open-telemetry
https://opentelemetry.io/docs/concepts/signals/traces/
https://hex.pm/packages/opentelemetry
https://hex.pm/packages/opentelemetry_exporter
https://davelucia.com/ – Dave's personal blog
https://github.com/prometheus/prometheus
https://grafana.com/
https://grafana.com/docs/loki/latest/send-data/promtail/
https://fly.io/docs/reference/metrics/
https://isburmistrov.substack.com/p/all-you-need-is-wide-events-not-metrics
https://amplitude.com/
Custom LiveView admin pages for dashboards
https://postmarkapp.com/
https://sendgrid.com/en-us
https://milkroad.com/ – A newsletter company that Dave Lucia worked at.
https://www.beehiiv.com/ – Newsletters as a service company
https://ahrefs.com/ – Tracking the back links from other sites to yours for SEO
https://search.google.com/search-console/about
https://github.com/dbernheisel/phoenix_seo
https://tvlabs.ai/ – Where Dave Lucia is working now.
Guest Information
https://twitter.com/davydog187 – on Twitter
https://github.com/davydog187/ – on Github
https://davelucia.com – Blog
https://tvlabs.ai – TVLabs company where he works now.
Find us online
Message the show - @ThinkingElixir
Message the show on Fediverse - @ThinkingElixir@genserver.social
Email the show - show@thinkingelixir.com
Mark Ericksen - @brainlid
Mark Ericksen on Fediverse - @brainlid@genserver.social
David Bernheisel - @bernheisel
David Bernheisel on Fediverse - @dbern@genserver.social
Cade Ward - @cadebward
Cade Ward on Fediverse - @cadebward@genserver.social
Sponsore -
192: Operational Elixir: Scrappy Startups Edition
In this second installment of our series, we're joined by Philip Brown, who returns to share his insights on running lean startups in the Elixir ecosystem. We dive into the art of supporting Elixir systems on a shoestring budget. Philip will walk us through his must-haves for MVPs, offering practical advice on how to leverage cost-effective solutions without sacrificing functionality. We'll discuss the balancing act between delivering a product and managing expenses, and highlight the essential tools that keep a scrappy startup's Elixir system robust yet affordable. Tune in for a candid look at making the most of limited resources, insights into Prise.com, ElixirMerge.com strategies, and more for the aspiring bootstrapper!
Show Notes online - http://podcast.thinkingelixir.com/192
Elixir Community News
https://github.com/erlang/eep/pull/59 – Erlang EEP 68, a new JSON module, has been accepted and merged into OTP's standard library.
https://www.erlang.org/eeps/eep-0068 – Details on Erlang EEP 68, which claims to significantly outperform other JSON libraries like Jason and jiffy.
Speculation on whether EEP 68 will be included in OTP 27 and its performance compared to existing JSON libraries.
https://github.com/electric-sql/pglite – PostgreSQL has been redeveloped as a WASM library called PGlite, allowing it to run in browsers and other environments without additional dependencies.
https://twitter.com/sasajuric/status/1762394843341353390 – Announcement of the printing of 'Elixir in Action 3rd Edition' and its rank on Manning's bestseller list.
Remember to use the "devtalk.com" or "mljuric3" coupon codes until March 9th for 45% off the ebook.
Release updates on Language Server Protocols (LSPs) for Elixir and Erlang, detailing new features and improvements like autocomplete and diagnostics.
https://twitter.com/zeddotdev/status/1757882887972528152 – Zed, a high-performance, multiplayer code editor now offers support for Erlang.
https://zed.dev/ – Zed editor's official website where you can find more information about its capabilities and open source nature.
https://twitter.com/thmsmlr/status/1762210503810507140 – Thomas Millar introduces kino_livereload, a library for LiveBook to auto-reload cells when source code changes.
https://github.com/thmsmlr/kino_livereload – GitHub repository for kino_livereload, showcasing its live reload feature for LiveBook cells.
https://fly.io/phoenix-files/what-if-s3-could-be-a-fast-globally-synced-key-value-database-that-s-tigris/ – An article describing Tigris, a globally-synced, S3-compatible file storage service designed for Fly.io.
Explanation of how Elixir applications can take advantage of Tigris as a key-value store using :erlang.term_to_binary for storing any Elixir data structure.
https://twitter.com/wojtekmach/status/1759511154131427516 – Release announcement for Req v0.4.10, an HTTP client for Elixir with added functionality for stubbing responses in concurrent tests.
https://elixirforum.com/t/req-a-batteries-included-http-client-for-elixir/48494/34 – Elixir Forum discussion thread about the latest updates and features in Req.
https://hexdocs.pm/req/Req.Test.html – Documentation for the Req.Test module, detailing new functions for stubbing HTTP responses in tests.
https://github.com/elixir-nx/bumblebee/blob/main/CHANGELOG.md – Changelog for Bumblebee's recent releases, including updates and new feature highlights.
Mention of contributions from Jonatan Kłosko and added Bumblebee features such as Mistral LLM support and the :seed option for generating inputs.
https://twitter.com/polvalente/status/1762234885777817666 – Nx v0.7.0 is released with EXLA's MLIR implementation, enabling new possibilities like quantization and Apple Metal support.
https://github.com/brainlid/langchain – Update to the Elixir LangChain library to align with the latest features of Bumblebee, allowing conversations with various LLMs.
Additional details on how the updated LangChai -
191: Operational Elixir: What's Supporting the Apps at Felt.com and SleepEasy.app?
In this special episode, we kick off a brand-new series that dives into the world of Elixir—but with a twist. We're exploring the systems surrounding the language and what it takes to support and run a company or team that uses Elixir. Join us as we engage in insightful conversations with various industry voices, starting with Tyler Young, about the practical systems and solutions used by businesses like Felt.com and SleepEasy.app. This series promises to be an enlightening journey for anyone curious about the behind-the-scenes workings of an Elixir-based product. Tune in to hear the unique challenges and successes experienced by others in the field and more!
Show Notes online - http://podcast.thinkingelixir.com/191
Elixir Community News
https://github.com/erlang/otp/pull/8111 – Erlang's potential new OTP json module is showing significant performance improvements in recent benchmarks.
https://twitter.com/michalmuskala/status/1759932700624912832 – Michał Muskała shares insights online about future Elixir idiomatic wrapper around the new OTP json module.
https://www.erlang.org/news/167 – OTP 27-RC1 was released with new features like the maybe expression and Triple-Quoted Strings.
https://github.com/erlang/otp/ – Official repository for Erlang/OTP where the 27-RC1 release can be found.
https://twitter.com/_uwu_cocoa/status/1758878453309505958 – Tweet mentioning that Erlang 27.0-rc1 runs natively on ARM64 Windows.
https://fly.io/blog/tigris-public-beta/ – Fly.io announces a new globally distributed object storage solution that supports the S3 API.
https://github.com/elixir-webrtc/ex_webrtc – New WebRTC library for Elixir called ex_webrtc is introduced.
https://blog.swmansion.com/introducing-elixir-webrtc-a37ece4bfca1 – Blog post introducing ex_webrtc, detailing the motivation and development of the new WebRTC library for Elixir.
https://membrane.stream/ – Membrane Framework site; although ex_webrtc was created due to certain challenges with Membrane, Membrane is noted for its pipeline model.
https://www.w3.org/TR/webrtc/ – The W3C WebRTC specification, which ex_webrtc implements in Elixir, is more JS focused.
The Erlang Ecosystem Foundation recently celebrated their 5 year anniversary, highlighting the community's achievements.
https://github.com/gleam-lang/gleam/releases/tag/v1.0.0-rc2 – Release of Gleam v1.0.0-rc2 which includes a bug fix for the compiler.
Announcement about ElixirConf US, with a call for training classes and upcoming call for talks.
Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com
Discussion Resources
https://felt.com/
https://sleepeasy.app/
https://twitter.com/TylerAYoung/status/1730253716073148470 – Tyler shared on X when he bought his physical hardware
https://sentry.io/for/elixir/
https://www.appsignal.com/elixir
https://felt.com/blog/startup-and-shutdown-for-phoenix-applications
https://retool.com
https://www.heap.io/
Guest Information
https://twitter.com/TylerAYoung – on Twitter
https://github.com/s3cur3 – on Github
https://fosstodon.org/@tylerayoung – on Fediverse
https://tylerayoung.com/ – Blog
Find us online
Message the show - @ThinkingElixir
Message the show on Fediverse - @ThinkingElixir@genserver.social
Email the show - show@thinkingelixir.com
Mark Ericksen - @brainlid
Mark Ericksen on Fediverse - @brainlid@genserver.social
David Bernheisel - @bernheisel
David Bernheisel on Fediverse - @dbern@genserver.social
Cade Ward - @cadebward
Cade Ward on Fediverse - @cadebward@genserver.social
Sponsored By:
Fly.io: Fly.io is a great place to deploy your next Phoenix application! Check them out! -
190: Thinking Elixir News
In this episode, we delve into the significant updates to Phoenix LiveView with its march towards 1.0, including crucial bug fixes in the latest v0.20.5 release. We explore the sleek new testing utility for Elixir, example_test, that's redefining readability in code tests. Plus, the Erlang community is abuzz with a fresh proposal to integrate JSON into the standard library. We'll look into how Fly.io has made GPU instances widely available and what this means for your projects. Don't miss out as we discuss these topics, Gleam's journey toward its 1.0.0 release, and more!
Show Notes online - http://podcast.thinkingelixir.com/190
Elixir Community News
https://twitter.com/elixirphoenix/status/1755593690863620319 – Announcement of Phoenix LiveView v0.20.5 release on Twitter.
https://github.com/phoenixframework/phoenix_live_view/blob/main/CHANGELOG.md – Changelog for Phoenix LiveView v0.20.5 detailing deprecations and bug fixes.
https://twitter.com/germsvel/status/1754834825457127606 – German Velasco's tip for printing the name of a currently executed function in a test without prior knowledge.
https://github.com/erlang/eep/pull/59 – Pull request proposing the addition of a JSON module to the Erlang standard library.
https://github.com/michalmuskala/eep/blob/json-eep/eeps/eep-0068.md – EEP68 document with details about the proposed JSON support interface for the Erlang standard library.
https://twitter.com/TylerAYoung/status/1757391526668202060 – Tyler Young announcing a new testing library, example_test, for Elixir on Twitter.
https://github.com/s3cur3/example_test – GitHub repository for example_test, a utility for defining readable example-based tests in Elixir.
https://fly.io/blog/gpu-ga/ – Announcement that Fly GPUs are now generally available and no longer on a waitlist.
https://github.com/acalejos/merquery – Merquery library release, offering a Postman-like Livebook kino cell for interactive queries in Elixir.
https://www.youtube.com/watch?v=clsTrQUt-4M – YouTube video of Louis Pilfold's "Past, Present, Future" talk at FOSDEM 2024 on the language Gleam.
https://twitter.com/gleamlang/status/1756376900782399629 – Twitter announcement of Gleam Lang v1.0.0-rc.1 release.
https://github.com/gleam-lang/gleam/releases/tag/v1.0.0-rc1 – GitHub release page for Gleam v1.0.0-rc.1.
https://github.com/gleam-lang/gleam/blob/v1.0.0-rc1/CHANGELOG.md – Changelog for Gleam v1.0.0-rc.1 highlighting new features and changes.
Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com
Find us online
Message the show - @ThinkingElixir
Message the show on Fediverse - @ThinkingElixir@genserver.social
Email the show - show@thinkingelixir.com
Mark Ericksen - @brainlid
Mark Ericksen on Fediverse - @brainlid@genserver.social
David Bernheisel - @bernheisel
David Bernheisel on Fediverse - @dbern@genserver.social
Cade Ward - @cadebward
Cade Ward on Fediverse - @cadebward@genserver.social
Sponsored By:
Fly.io: Fly.io is a great place to deploy your next Phoenix application! Check them out!