211: A Passion for Testing
News includes the recent release of Elixir 1.17.2, updates to Livebook v0.13 making clustering in Kubernetes easier and introducing a proxy API for webhooks, and exciting developments in the Explorer library with remote dataframes. We also discuss handy Phoenix tips from Andrew Stewart and the new Gleam 1.3.0 features. In our interview, German Velasco shares his journey from Rails to Elixir, his contributions like Elixir Streams and the Phoenix Test library, and his philosophy on TDD. German also speaks about his upcoming talk at ElixirConf and his desire for integrating JavaScript testing capabilities. Tune in to hear all this and more! Show Notes online - http://podcast.thinkingelixir.com/211 Elixir Community News https://github.com/elixir-lang/elixir/releases/tag/v1.17.2 – Elixir 1.17.2 was released, which includes a Logger fix and some Mix-related bugfixes. Livebook updates - follow-up https://x.com/miruoss/status/1809633392088027193 – Michael Ruoss notes that Livebook v0.13 works well for clustering on Kubernetes. https://github.com/mruoss/livebook-helm – Michael Ruoss created a Livebook Helm chart for easier deployment in Kubernetes clusters. https://artifacthub.io/packages/helm/livebook/livebook – Helm chart for Livebook on Artifact Hub. https://news.livebook.dev/livebook-0.13-expose-an-http-api-from-your-notebook-2wE6GY – Livebook gains a proxy API to allow it to receive webhooks, useful for publishing Livebook as an app. https://x.com/livebookdev/status/1809203084154843279 – Details on the new proxy API feature in Livebook. https://x.com/hugobarauna/status/1809203637022863784 – Use Plug.Router and Kino.Proxy.listen for sending webhooks or events to your Livebook. https://www.elixirstreams.com/tips/liveview-used-input LiveView 1.0 removes the phx-feedback-for annotation for showing and hiding input feedback. The update introduces the used_input?/2 helper on the server-side. https://github.com/phoenixframework/phoenix_live_view/blob/main/CHANGELOG.md#backwards-incompatible-changes-for-10 – LiveView 1.0 Upgrade instructions, including a JavaScript shim for backwards compatibility. https://x.com/josevalim/status/1808560304172761191 – Explorer gets remote dataframes support. https://github.com/elixir-explorer/explorer/pull/932 – A PR was merged into Explorer to support remote dataframes, enabling transparent proxy operations in a cluster. Explorer is part of the Nx project for data analysis and machine learning, supporting one and two-dimensional data structures. The new feature also performs distributed garbage collection. https://x.com/src_rip/status/1810360113343115521 – Andrew Stewart shares a Phoenix tip on creating a link button to submit a post action without a form. https://hexdocs.pm/phoenix_live_view/Phoenix.Component.html#link/1 – More details on using Phoenix's link component. https://github.com/phoenixframework/phoenix_live_view/blob/f778e5bb1a4b0a29f8d688bbc6c0b7182dea51ca/lib/phoenix_component.ex#L2734-L2737 – Underlying implementation details of Phoenix.HTML's data attributes. https://gleam.run/news/auto-imports-and-tolerant-expressions/ – Gleam 1.3.0 release features LSP improvements, CLI commands for adding/removing dependencies, and support for Erlang/OTP 27 keywords. https://www.erlang-solutions.com/blog/let-your-database-update-you-with-ectowatch/ – EctoWatch by Brian Underwood allows notifications about database changes directly from PostgreSQL. https://github.com/cheerfulstoic/ecto_watch – EctoWatch GitHub repository. https://github.com/ityonemo/protoss – Isaac Yonemoto's Protoss library update, improving ergonomics of setting up protocols. https://www.youtube.com/watch?v=dCRGgFkCkmA – Watch a video explaining the Protoss library. https://hexdocs.pm/protoss/Protoss.html – Protoss documentation. Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com Discussion Resources https://www.elixirstreams.com/ – Short video tips that German creates and shares. https://www.testingliveview.com/ – Video course focused on testing LiveViews https://github.com/germsvel/phoenix_test – PhoenixTest provides a unified way of writing feature tests -- regardless of whether you're testing LiveView pages or static (non-LiveView) pages. https://www.youtube.com/watch?v=JNWPsaO4PNM – ElixirConf 2023 - German Velasco - Using DDD concepts to create better Phoenix Contexts https://www.mechanical-orchard.com/ https://github.com/elixir-wallaby/wallaby Guest Information https://x.com/germsvel – on Twitter https://github.com/germsvel – on Github https://www.germanvelasco.com/ – Blog https://www.testingliveview.com/ – Testing LiveView course site https://elixirstreams.com – Short video tips 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 Sponsored By:Fly.io: Fly.io is a great place to deploy your next Phoenix application! Check them out!