Thinking Elixir Podcast

ThinkingElixir.com
undefined
Jul 27, 2021 • 57min

57: Scaling Live Chat with Cade Ward

We sat down with co-host Cade Ward to hear how he and his team tackled a problem of hosting live web chats with crowds of 120K+ users coming together for live events. On the show, we have talked with a couple guests with similar bursting high-load situations. Cade had been through it too so it was time to dig in and cover how this situation can be solved. We cover the different attempts and temporary solutions used and the final solution that has been working really well. In fact it works so well, during a recent event, the auto-scaling didn’t kick in and everything was still fine! Show Notes online - http://podcast.thinkingelixir.com/57 Elixir Community News https://github.com/phoenixframework/phoenix/pull/4377 – Phoenix v1.6 will officially use esbuild! https://twitter.com/sorentwo/status/1417462054114537476 – Parker Selbert identified the issue counts linked to JS packaging... ~30% of total issues! https://twitter.com/mcrumm/status/1417141537541033985 – Phoenix View can now be used as a separate package https://utils.zest.dev/gendiff – David's tool for diffing generated projects. Includes support for the different flags. https://hexdocs.pm/k8s/changelog.html#1-0-0-2021-07-19 – The "k8s" library was updated and got a 1.0 release tag https://pragprog.com/titles/lmelixir/testing-elixir/ – The Book "Testing Elixir" launched in Beta https://twitter.com/remote/status/1414919265841557510 – Remote raises $150M and is using Elixir https://github.com/livebook-dev/livebook/pull/418 – Livebook UX improvement to restart runtime when Mix.install packages changed https://github.com/livebook-dev/livebook/pull/449 – Support for "branching sections" added to Livebook notebooks https://github.com/wojtekmach/notebooks/blob/main/client_server.livemd – Wojtek Mach created a notebook using branching sections to create a client-server setup in a single notebook https://github.com/livebook-dev/livebook/pull/441 – Livebook notebooks can link to each other https://erlang.org/pipermail/erlang-questions/2021-July/101209.html – Frank Hunleth of the Nerves project encountered performance issue when shutting down a node. Interesting discussion with the OTP Team. https://github.com/erlang/otp/pull/5032 – OTP PR opened for speeding up controlled shutdowns https://github.com/fhunleth/nerves_livebook/releases/tag/v0.2.14 – Nerves 1.7.9 is out with minor updates to all systems and toolchain https://nervesconf.com/ – Nerves Conf October 11 in Austin Texas, timed with ElixirConf Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com Discussion Resources https://elixirforum.com/t/implementing-a-distributed-users-counter/39609 – Link to Cade's Elixir Forum post with discussion https://gist.github.com/cadebward/c24fc4aced526d9d35bb00a6a8140784 – Gist of the Cade's working solution https://www.vidangel.com/ – First incarnation of company before pivot https://invest.angel.com/ – Angel Studios kickstarter like projects https://elixirforum.com/ http://angel.com/apply – Angel Studios is hiring! Guest Information https://twitter.com/cadebward – on Twitter https://github.com/cadebward/ – on Github Find us online Message the show - @ThinkingElixir Email the show - show@thinkingelixir.com Mark Ericksen - @brainlid David Bernheisel - @bernheisel Cade Ward - @cadebward
undefined
Jul 13, 2021 • 60min

56: Fly-ing Elixir Close to Users with Kurt Mackey

We talk with Kurt Mackey, founder at Fly.io, about what makes the Fly platform unique and why hosting Elixir applications there makes a lot of sense. They started out looking to make a better CDN for developers and this pushed them to try deploying Full Stack applications closer to users, not just the static assets! We learn about the tech behind the networking, how databases can be moved closer to users, and how LiveView is even more awesome when it is close to users. Kurt also shares what he sees as the future for databases as the industry continues to move into globally distributed applications. Show Notes online - http://podcast.thinkingelixir.com/56 Elixir Community News https://github.com/elixir-lang/elixir/pull/11101 – Task.completed/1 function added https://github.com/elixir-lang/elixir/releases/tag/v1.12.2 – Elixir 1.12.2 minor release https://github.com/phoenixframework/phoenix_live_view/pull/1511 – LV Lifecycle Hooks https://github.com/phoenixframework/phoenix_live_view/pull/1515 – Add on_mount option to live_session https://github.com/phoenixframework/phoenix_live_view/pull/1513 – New form_for/4 https://github.com/phoenixframework/phoenix/pull/4355 – Add mailer generator for swoosh https://github.com/akoutmos/prom_ex/blob/master/CHANGELOG.md – prom_ex library has 1.3.0 release adding Absinthe GraphQL plugin and dashboard https://fly.io/blog/monitoring-your-fly-io-apps-with-prometheus/ – Using prom_ex on an Elixir project https://github.com/wojtekmach/elixir-run – Wojtek Mach released a new project called "elixir-run" https://github.com/nurturenature/elixir_actions#elixir-actions-for-github – Elixir Github Actions CI example repo https://twitter.com/evadne/status/1412083538988613636 – Etso 0.1.6 was released adding "is_nil" query support Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com Discussion Resources https://fly.io/ https://fly.io/docs/introduction/ https://fly.io/blog/building-a-distributed-turn-based-game-system-in-elixir/ https://www.compose.com/ https://twitter.com/QuinnyPig – Corey Quinn on Twitter https://nats.io/ https://jamstack.org/ https://liveview-counter.fly.dev/ https://github.com/fly-apps/phoenix-liveview-cluster https://en.wikipedia.org/wiki/Anycast https://en.wikipedia.org/wiki/Border_Gateway_Protocol https://en.wikipedia.org/wiki/Content_delivery_network https://www.wireguard.com/ https://tailscale.com/ https://fly.io/blog/globally-distributed-postgres/ https://www.cockroachlabs.com/ https://www.yugabyte.com/ https://www.citusdata.com/ https://fly.io/blog/ https://twitter.com/flydotio https://en.wikipedia.org/wiki/Joe_Armstrong_(programmer) Guest Information https://twitter.com/mrkurt – on Twitter https://github.com/mrkurt – on Github https://fly.io/blog/ – Blog Find us online Message the show - @ThinkingElixir Email the show - show@thinkingelixir.com Mark Ericksen - @brainlid David Bernheisel - @bernheisel Cade Ward - @cadebward
undefined
Jul 6, 2021 • 37min

55: Learning from Failure with Philipp Schmieder

We talk with Philipp Schmieder about his experience creating a LiveView application for a political party’s convention and then watching the app blow up. We learn how he recovered, why it failed, and how he fixed it going forward. We also discuss some other application architecture ideas and how they might work. It’s a great post-mortem discussion where Philipp shares his wisdom so others learn from the mistakes. After experiencing all this, find out why he’s still bullish on LiveView and Elixir! Show Notes online - http://podcast.thinkingelixir.com/55 Elixir Community News https://www.elixirconf.eu/ – ElixirConfEU - Warsaw Poland, September 9-10 https://2021.elixirconf.com/ – ElixirConf US 2021 Austin, TX October 12-13 and Online, October 14-15. https://www.codebeambr.com/ – Code Beam Brazil posted their videos from 2020 https://github.com/elixir-nx/livebook/pull/389 – Livebook gets "reactive inputs" https://github.com/elixir-nx/livebook/pull/410 – Livebook gets input color selectors https://github.com/kw7oe/livebook-notebooks/blob/main/debugging-with-tracing-in-elixir-with-recon_trace.livemd – Notebook explaining recon_trace by Kai Wern https://twitter.com/ThinkingElixir – Tell us about your project, post, conference, or other Elixir news! Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com Discussion Resources https://pentacent.com/blog/failing-big-elixir-liveview/ https://twitter.com/pentacent_hq/status/1399330035937464320 :observer.start :crashdump_viewer.start https://hexdocs.pm/phoenix_pubsub/Phoenix.Tracker.html https://hex.pm/packages/etso https://www.keila.io/ – MailChimp-like project extracted for helping with mailings Guest Information https://twitter.com/pentacent_hq – on Twitter https://github.com/wmnnd/ – on Github https://pentacent.com/ – Blog Find us online Message the show - @ThinkingElixir Email the show - show@thinkingelixir.com Mark Ericksen - @brainlid David Bernheisel - @bernheisel Cade Ward - @cadebward
undefined
Jun 29, 2021 • 54min

54: AST Parsing using Sourceror with Lucas San Román

We talk with Lucas San Román about his library Sourceror and how it was created to solve some AST parsing limitations. The Elixir parser discards code comments, so it can’t be used for re-writing Elixir code when refactoring. IDE’s often include more advanced refactoring tools and the ability to provide that requires a smarter parser. Sourceror keeps the comments while also providing advanced features like a Zipper API to more easily navigate around the source tree while inserting and removing nodes. Learn what Sourceror can do and what it can enable for future Elixir tools! Show Notes online - http://podcast.thinkingelixir.com/54 Elixir Community News https://www.elixirconf.eu/ – ElixirConfEU will be in Warsaw Poland on September 9-10 https://2021.elixirconf.com/ – ElixirConf US 2021 ElixirConf US 2021 is being held in Austin, TX October 12-13 and Online, October 14-15 https://github.com/phoenixframework/phoenix_live_view/pull/1490 – live_session for optimized live navigation purely over websockets PR was merged and had docs https://github.com/livewire/livewire/commit/5cffdbfe4204e0d932cde6f8c9bdf63f0928b4d4#diff-7ce6ac695f53fd2e2c50f1f962b00fb2da5cdf2576a1c1d6eeacca29f34b6024R291 – Alpine V3 released https://twitter.com/bernheisel/status/1404832454536478722 – Need to update your Phoenix LiveView hook for Alpine V3 https://github.com/erlang/otp/pull/4869 – ARM support for OTP24/JIT was merged a couple weeks ago https://twitter.com/josevalim/status/1405586165315604486 – Livebook 0.2 released https://youtu.be/MOTEgF-wIEI?t=1132 – Jose Valim's demo video - time signature to the Kino section https://twitter.com/josevalim/status/1407084358750572548 – Tweet thread showing Kino data_table and execution timing display https://github.com/kentaro/off_broadway_otp_distribution – off_broadway_otp_distribution library https://twitter.com/gleamlang/status/1405504902655361024 – Gleam 0.16 released and can now compile to Javascript https://gleam.run/news/v0.16-gleam-compiles-to-javascript/ – Gleam release announcement https://github.com/phoenixframework/phoenix/pull/4337 – Asset Pipeline rewrite merged https://youtu.be/vdhK0QPN61E?t=839 – Elixir Roundtable 3 discussion talks about the JS woes. Time signature links to the mentioned part of the discussion. https://twitter.com/MarlusSaraiva/status/1405621630597013508 – Surface 0.5 released https://surface-ui.org/template_syntax – Surface's new template syntax https://github.com/surface-ui/surface/blob/master/MIGRATING.md – Surface migration guide Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com Discussion Resources https://github.com/doorgan/sourceror https://twitter.com/bostonvaulter/status/1403055559612375041 https://www.youtube.com/watch?v=aM0BLWgr0g4 – Arjan Scherpenisse - The Elixir parser under the microscope - ElixirConfEU https://groups.google.com/u/1/g/elixir-lang-core/c/GM0yM5Su1Zc/m/poIKsiEVDQAJ https://github.com/elixir-lsp/elixir-ls https://dorgan.netlify.app/posts/2021/04/the_elixir_ast/ https://github.com/andyl/rfx Tonći Galić Guest Information https://twitter.com/dorgandash1 – on Twitter https://github.com/doorgan/ – on Github https://dorgan.netlify.app/ – Blog Find us online Message the show - @ThinkingElixir Email the show - show@thinkingelixir.com Mark Ericksen - @brainlid David Bernheisel - @bernheisel Cade Ward - @cadebward
undefined
Jun 22, 2021 • 36min

53: SOLID Elixir with Ilya Averyanov

We talk with Ilya Averyanov about how the SOLID principles, typically associated with OOP, can apply to Elixir. We talk about Ilya's blog post where he applied these principles to his Github project and how that helped in PR discussions. We also talk about testing, architecture, and more. Show Notes online - http://podcast.thinkingelixir.com/53 Elixir Community News https://github.com/phoenixframework/phoenix_live_view/pull/1490 – Phoenix LiveView live_session PR coming up https://github.com/phoenixframework/phoenix_live_view/pull/1474 – Phoenix LiveView internal rewrite of JS https://github.com/phoenixframework/phoenix/pull/4337 (related, where explanation lives) – PR for "comprehensive rewrite of the Phoenix asset pipeline" https://www.youtube.com/watch?v=vdhK0QPN61E – Elixir Roundtable 3 - discussion with Chris McCord about the pipeline changes https://elixirforum.com/t/elixir-gotchas-and-common-issues-wiki/40261 – Elixir Gotchas and Common Issues Wiki https://twitter.com/FrancisChabouis/status/1404342105053466627 – French Government is using Elixir and Phoenix https://github.com/etalab/transport-site – French government project https://twitter.com/hmans/status/1402723032850997257 – WebComponents and LiveView example as 3D WebGL https://twitter.com/PeterLodewijk/status/1404462934030487553 – Hera Platform announced, sensor network running Erlang on GRiSP boards https://www.info.ucl.ac.be/~pvr/Kalbusch_22701600_Verpoten_61101500_2021.pdf – Details in the paper on how it works Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com Discussion Resources https://dev.to/savonarola/why-solid-may-be-useful-for-you-in-elixir-58me https://en.wikipedia.org/wiki/SOLID https://hexdocs.pm/gen_stage/GenStage.html#module-usage-guidelines https://www.theerlangelist.com/article/spawn_or_not http://erlang.org/doc/man/xref.html https://github.com/sasa1977/boundary https://github.com/funbox/clean_mixer https://github.com/funbox/smppex https://github.com/savonarola/smppex_telemetry https://github.com/beam-telemetry/telemetry https://en.wikipedia.org/wiki/Chain-of-responsibility_pattern https://docs.oracle.com/en/java/javase/15/language/sealed-classes-and-interfaces.html http://blog.plataformatec.com.br/2015/10/mocks-and-explicit-contracts/ https://gameprogrammingpatterns.com/ http://blog.plataformatec.com.br/2015/10/mocks-and-explicit-contracts/ https://www.amazon.com/Clean-Architecture-Craftsmans-Software-Structure/dp/0134494164 – Clean Architecture https://www.archunit.org/ – Testing architecture Guest Information https://twitter.com/motonarola – on Twitter https://github.com/savonarola/ – on Github Find us online Message the show - @ThinkingElixir Email the show - show@thinkingelixir.com Mark Ericksen - @brainlid David Bernheisel - @bernheisel Cade Ward - @cadebward
undefined
Jun 15, 2021 • 50min

52: IOList and Postgres with Nathan Long

We take a deeper dive with Nathan Long into IOLists in Elixir. We cover what they are, how they work, the power they have when concatenating strings, and how they are used in Phoenix and Logger. We even talk about improper lists and why they exist. And no, it isn’t a bug. We then talk about PostgreSQL features like materialized views, triggers, and using denormalized tables for solving complicated caching situations. Nathan shares some tips for when to use them and provides some cautions worth hearing. Show Notes online - http://podcast.thinkingelixir.com/52 Elixir Community News https://2021.elixirconf.com/ – ElixirConf US 2021 ElixirConf US 2021 scheduled for October https://elixir-lang.org/blog/2021/06/02/social-virtual-spaces-with-elixir-at-mozilla/ – New Elixir Case study about Mozilla using Phoenix to create an opensource virtual social space called "Hubs" https://ziglang.org/ – Zig, the language some use to create NIFs was updated for Apple Silicon. https://github.com/ityonemo/zigler – The Elixir library for working with embedded Zig code https://twitter.com/sean_moriarity/status/1401182959844143104 – Training Callback feature added to Axon https://github.com/elixir-nx/livebook/pull/328 – Livebook gets a new "inputs" feature https://thinkingelixir.com/podcast-episodes/046-livebook-with-jonatan-klosko/ – Previous discussion with Livebook developer Jonatan Kłosko https://twitter.com/michalslaski/status/1402243589720117255 – Livebook notebook example shows a scatterplot displaying BEAM statistics like reductions and memory of processes https://www.mitchellhanberg.com/how-i-handle-static-assets-in-my-phoenix-apps/ – Ditch webpack? Handling static assets with Phoenix and esbuild, postcss-cli, cpx https://www.mitchellhanberg.com/how-to-set-up-neovim-for-elixir-development/ – Followup from last week's news item about Neovim, Language Server integration Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com Discussion Resources https://nathanmlong.com/2021/05/what-is-an-iolist/ https://nathanmlong.com/2016/11/elixir-and-io-lists-part-2-io-lists-in-phoenix/ – Discussion on IOLists in Phoenix https://nathanmlong.com/2016/11/elixir-and-unicode-part-1-unicode-and-utf8-explained/ – Unicode background part 1 https://nathanmlong.com/2016/11/elixir-and-unicode-part-2-working-with-unicode-strings/ – Unicode background part 2 https://devchat.tv/elixir-mix/emx-078-phoenix-phrenzy-with-nathan-long/ – Mark talked with Nathan back on Elixir Mix 78 about his work on the Phoenix Phrenzy competition/project https://thinkingelixir.com/podcast-episodes/044-elixir-data-types-with-sasha-fonseca/ – Episode 44 with Sasha Fonseca covered IOLists https://www.youtube.com/watch?v=uf6cgxm9iFQ – Dockyard Elixir Roundtable https://nathanmlong.com/2016/01/protect-your-data-with-postgresql-constraints/ https://nathanmlong.com/2018/01/fast-fulltext-search-with-ecto-and-postgresql/ https://hashrocket.com/blog/posts/materialized-view-strategies-using-postgresql#eager-materialized-view Guest Information https://github.com/nathanl/ – on Github https://nathanmlong.com/blog/ – Blog https://dockyard.com/blog/authors/nathan-long – Dockyard Blog Posts Email - hello@nathanmlong.com Find us online Message the show - @ThinkingElixir Email the show - show@thinkingelixir.com Mark Ericksen - @brainlid David Bernheisel - @bernheisel Cade Ward - @cadebward
undefined
Jun 8, 2021 • 41min

51: Live Auctions with Alex Loukissas

We talk with Alex Loukissas about using Phoenix sockets to provide live auction systems. We comment on the situation of flash-mob-like users coming to a system and needing to handle high traffic volumes for shorter durations. We talk about how the Horde library helps solve fun distributed clustering problems, we cover observability tools, how and why companies should support open source development through sponsorships and more! Show Notes online - http://podcast.thinkingelixir.com/51 Elixir Community News https://github.com/elixir-lang/elixir/releases/tag/v1.12.1 – Elixir 1.12.1 released. Small set of bug fixes. https://github.com/ananthakumaran/tree-sitter-elixir – New tree-sitter Elixir parser. Used in Atom, Neovim and Emacs https://github.blog/2018-10-31-atoms-new-parsing-system/ https://github.com/ubolonton/emacs-tree-sitter https://github.com/nvim-treesitter https://fly.io/blog/livebook-for-app-documentation/ – Mark's Fly.io blog post on using Livebook as a project documentation tool https://twitter.com/josevalim/status/1399733953217679367 – Jose Valim teases new Livebook feature with this graphic https://github.com/wojtekmach/mix_install_examples – Wojtek Mach created a repo showing example usages of Mix.install. https://twitter.com/thebroken_link/status/1399713273340207109 – Support for "curl url | sh" style scripts using Elixir https://twitter.com/elixirlang/status/1399714176667471878 – Stack Overflow survey is out and both Erlang/Elixir are on the menu. https://stackoverflow.blog/2021/05/25/the-2021-developer-survey-is-now-open/ https://stackoverflow.az1.qualtrics.com/jfe/form/SV_7arimtzVFf8ipfM Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com Discussion Resources http://whatnot.com https://www.splunk.com/ https://reactnative.dev/ https://kotlinlang.org/ https://swift.org/ https://goshippo.com/ https://github.com/derekkraan/horde https://fly.io/ https://fly.io/blog/building-a-distributed-turn-based-game-system-in-elixir/ https://newrelic.com/ https://www.erlang-solutions.com/capabilities/wombatoam/ https://www.honeycomb.io/ https://jobs.lever.co/whatnot/ Guest Information https://twitter.com/aloukissas – on Twitter https://github.com/aloukissas – on Github https://alexloukissas.com – Blog Find us online Message the show - @ThinkingElixir Email the show - show@thinkingelixir.com Mark Ericksen - @brainlid David Bernheisel - @bernheisel Cade Ward - @cadebward
undefined
Jun 1, 2021 • 54min

50: Exercism.io and Elixir with Angelika Tyborska

We talk with Angelika Tyborska about the history of exercism.io, her involvement, the issues addressed in v2 and what's new and cool in the soon to be released v3. We cover the Elixir track, her work as a maintainer, the journey of a student and how people can help as mentors. We also hear about the "fun" she had creating a maze generator and more! Show Notes online - http://podcast.thinkingelixir.com/50 Elixir Community News https://elixir-lang.org/blog/2021/05/19/elixir-v1-12-0-released/ – Elixir 1.12 was released! https://thinkingelixir.com/elixir-1-12-and-your-first-mix-install-script/ – Mix.install/2 intro post with example. Setup Elixir 1.12 through asdf https://twitter.com/hauleth/status/1394575966463315970 – Global logger metadata as part of OTP 24 https://angelika.me/elixir-enum-cheatsheet – Angelika Tyborska updated her nice Enum visual cheatsheet https://github.com/elixir-lang/elixir/pull/10637 – Registry module supports the :compressed option https://twitter.com/dashbit/status/1395138662850048003 – Livebook is on Hex.pm using mix escript.install hex livebook https://erlef.org/blog/machine-learning/machine-learning-updates-may-2021 – The Machine Learning group in the EEF outlines their progress https://github.com/erlang/otp/pull/4869 – Erlang JIT is coming to AArch64 platforms such as Apple's new M1-based Macs https://github.com/elixir-nx/livebook/pull/287 – Livebook gets support for graphing through VegaLite https://vega.github.io/vega-lite/ https://smartlogic.io/about/community/elixir-wizards-conference/ – SmartLogic/Elixir Wizards is hosting an Elixir conference! https://twitter.com/chris_mccord/status/1396600570614632451 – Chris McCord's script to simulate poor network for websocket connections on osx Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com Discussion Resources https://exercism.io/ https://exercism.io/tracks/elixir https://steadyhq.com/en https://steadyhq.com/en/product https://exercism.io/about https://adventofcode.com/ https://www.youtube.com/watch?v=GWEEPt8VvmU http://www.mazesforprogrammers.com/ https://github.com/angelikatyborska/mazes https://angelika.me/elixir-enum-cheatsheet/ https://github.com/angelikatyborska/vnu-elixir https://github.com/neenjaw/ – Other Elixir track maintainer - Tim Austin https://angelika.me/ https://mazes.angelika.me/ – Cool LiveView maze generator Guest Information https://twitter.com/atyborska93 – on Twitter https://github.com/angelikatyborska/ – on Github https://angelika.me/ – Blog Find us online Message the show - @ThinkingElixir Email the show - show@thinkingelixir.com Mark Ericksen - @brainlid David Bernheisel - @bernheisel Cade Ward - @cadebward
undefined
May 25, 2021 • 45min

49: Pushing for Modularity with Maciej Kaszubowski

Maciej Kaszubowski returns to talk about how read models can help modularize our systems. There is a focus on background job systems and how they fit in our modular designs. We cover push vs pull based systems and which is more maintainable. Maciej also shares his approach to learning and understanding a new Elixir library and more! Show Notes online - http://podcast.thinkingelixir.com/49 Elixir Community News https://www.erlang.org/news/148 – OTP 24 was released! https://blog.erlang.org/My-OTP-24-Highlights/ – Lukas Larsson's blog post covers the highlights https://github.com/erlang/otp/issues/4821#issuecomment-840051976 – OTP 24 minor release pains - crypto OpenSSL lib change affects people on MacOS https://github.com/asdf-vm/asdf-erlang/wiki – David's contribution to supporting the wxWidgets webview https://twitter.com/fhunleth/status/1392843846183174149 – Livebook support on Nerves is improved https://github.com/fhunleth/nerves_livebook – Lets you try out the Nerves projects on real hardware without needing to build anything. Includes tutorials. https://github.com/elixir-lang/elixir/issues/10983 – Allow tests to be compiled in ExUnit https://github.com/elixir-nx/nx/pull/390 – Nx gets while loops https://github.com/elixir-nx/nx/pull/406 – Nx gets maps support https://github.com/phoenixframework/phoenix_live_view/pull/1440 – HEEx engine merged into Phoenix LiveView https://dashbit.co/blog/surface-liveview – Dashbit blog covering Surface and HEEX engine Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com Discussion Resources https://mkaszubowski.com/2021/03/27/modular-design-read-models-background-jobs.html https://thinkingelixir.com/podcast-episodes/009-decomposing-models-with-maciej-kaszubowski – Previous interview with Maciej https://www.joinblvd.com/ https://www.cqrs.nu/tutorial/cs/03-read-models https://github.com/sorentwo/oban https://github.com/commanded/commanded Guest Information https://twitter.com/mkaszubowski94 – on Twitter https://github.com/mkaszubowski/ – on Github https://mkaszubowski.com – Blog Find us online Message the show - @ThinkingElixir Email the show - show@thinkingelixir.com Mark Ericksen - @brainlid David Bernheisel - @bernheisel Cade Ward - @cadebward
undefined
May 18, 2021 • 37min

48: Ecto Associations with Sheharyar Naseer

We talk with Sheharyar Naseer about Ecto's feature "association defaults" and how they work. We learn how they even support defining a function that gets called during your changeset operations which can be used to ensure multi-tenancy IDs get populated correctly. We learn more about Slab, talk about Single Table Inheritance designs and how we feel about them. We also talk about wrapping the Repo module for fun and profit! Show Notes online - http://podcast.thinkingelixir.com/48 Elixir Community News https://blog.taxjar.com/taxjar-will-be-joining-stripe-to-help-build-the-worlds-tax-compliance-infrastructure/ – TaxJar, an Elixir-backed service, was acquired by Stripe https://twitter.com/collision/status/1387108960881111040 – Potentially the largest acquisition of a fully-remote company to-date https://twitter.com/garazdawi/status/1390303999484514314 – OTP team shared that OTP 21 (older) received it's last patch and will no longer be supported. https://twitter.com/MNishiguchiDC/status/1390658051267563520 – Example of using Livebook on Nerves to experiment, document, and control a BMP280 temperature sensor connected to a Raspberry Pi https://twitter.com/josevalim/status/1390944763139006464 – Jose Valim was on the Changelog podcast talking about Nx, Axon, Livebook and Machine Learning with Elixir https://thinkingelixir.com/podcast-episodes/034-jose-valim-reveals-project-nx/ – Our previous discussion with Jose when he revealed Nx publicly https://github.com/elixir-nx/livebook/pull/260 – Livebook got collaborative editing with user-specific cursors (similar to Google Docs) https://alchemyconf.com – AlchemyConf is a virtual conference happening on May 28th organized by Subvisual https://www.elixirconf.eu/ – ElixirConfEU hosting a "hybrid" conference event. Sept 9-10th in Warsaw and also on-line https://en.wikipedia.org/wiki/Proof_of_stake – Feedback on crypto currency environmental concerns. Check out Proof-of-Stake as a more environmentally friendly approach than Proof-of-Work. Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com Discussion Resources https://slab.com/blog/association-defaults-in-ecto/ https://slab.com/ https://www.notion.so/product https://www.atlassian.com/software/confluence https://en.wikipedia.org/wiki/Single_Table_Inheritance https://hexdocs.pm/ecto/Ecto.Repo.html#c:prepare_query/3 https://hexdocs.pm/ecto/Ecto.Repo.html#c:exists?/2 https://the.slab.com/public/topics/careers-at-slab-4vhprcwg – Slab is hiring! Guest Information https://twitter.com/sheharyarn – on Twitter https://github.com/sheharyarn – on Github https://shyr.io/ – Blog hello@sheharyar.me Find us online Message the show - @ThinkingElixir Email the show - show@thinkingelixir.com Mark Ericksen - @brainlid David Bernheisel - @bernheisel Cade Ward - @cadebward

The AI-powered Podcast Player

Save insights by tapping your headphones, chat with episodes, discover the best highlights - and more!
App store bannerPlay store banner
Get the app