Listen "141: Network Programming with Elixir and Andrea Leopardi"
Episode Synopsis
We talk with Andrea Leopardi, Elixir core team member, author, and recent Protohacker celebrity! We wanted to learn more about his dbg work that outputs boolean expression info and about his experience using Elixir to solve the Protohacker networking challenges. He shares how that work parlayed into creating an Elixir networking book for PragProg. He teases what he might be working next and more!
Show Notes online - http://podcast.thinkingelixir.com/141 (http://podcast.thinkingelixir.com/141)
Elixir Community News
- https://phoenixframework.org/blog/phoenix-1.7-final-released (https://phoenixframework.org/blog/phoenix-1.7-final-released?utm_source=thinkingelixir&utm_medium=shownotes) – Phoenix 1.7.0 "final" released!
- https://gist.github.com/chrismccord/00a6ea2a96bc57df0cce526bd20af8a7 (https://gist.github.com/chrismccord/00a6ea2a96bc57df0cce526bd20af8a7?utm_source=thinkingelixir&utm_medium=shownotes) – Step-by-step upgrade guide
- https://elixirstream.dev/gendiff/phx_new/A93EFEDC8E8E71E5F1490CF31042679E (https://elixirstream.dev/gendiff/phx_new/A93EFEDC8E8E71E5F1490CF31042679E?utm_source=thinkingelixir&utm_medium=shownotes) – Diffs from 1.6.16 to 1.7.0 with live phx.gen.auth
- https://elixirstream.dev/gendiff/phx_new/018C3724F7E9A04683EA80F8A5657694 (https://elixirstream.dev/gendiff/phx_new/018C3724F7E9A04683EA80F8A5657694?utm_source=thinkingelixir&utm_medium=shownotes) – Diffs from 1.6.16 to 1.7.0 with non-live phx.gen.auth
- https://elixirstream.dev/gendiff/phx_new/F175E36352E8C1378CB3F913EBBAD6A0 (https://elixirstream.dev/gendiff/phx_new/F175E36352E8C1378CB3F913EBBAD6A0?utm_source=thinkingelixir&utm_medium=shownotes) – Diffs from 1.7.0 non-live to live
- https://elixirstream.dev/gendiff/phx_new/639AD8C21FD8CB22B72797EE5597118A (https://elixirstream.dev/gendiff/phx_new/639AD8C21FD8CB22B72797EE5597118A?utm_source=thinkingelixir&utm_medium=shownotes) – Diffs from 1.7.0-rc0 to final
- https://elixirstream.dev/gendiff/phx_new/FFCC88CB3B539BA68F30ADB69E4832BF (https://elixirstream.dev/gendiff/phx_new/FFCC88CB3B539BA68F30ADB69E4832BF?utm_source=thinkingelixir&utm_medium=shownotes) – Diffs from 1.7.0-rc1 to final
- https://elixirstream.dev/gendiff/phx_new/3007D95E4C49619702C5E550E0BBA5DD (https://elixirstream.dev/gendiff/phx_new/3007D95E4C49619702C5E550E0BBA5DD?utm_source=thinkingelixir&utm_medium=shownotes) – Diffs from 1.7.0-rc2 to final
- https://elixirstream.dev/gendiff/phx_new/5BF0D673DB427053F70DC9DC9F10DD09 (https://elixirstream.dev/gendiff/phx_new/5BF0D673DB427053F70DC9DC9F10DD09?utm_source=thinkingelixir&utm_medium=shownotes) – Diffs from 1.7.0-rc3 to final
- https://hexdocs.pm/phoenixhtml/Phoenix.HTML.FormData.html#toform/4 (https://hexdocs.pm/phoenix_html/Phoenix.HTML.FormData.html#to_form/4?utm_source=thinkingelixir&utm_medium=shownotes) – We noticed the new toform function and data structure being used by the new generators
- https://fly.io/phoenix-files/phoenix-dev-blog-streams/ (https://fly.io/phoenix-files/phoenix-dev-blog-streams/?utm_source=thinkingelixir&utm_medium=shownotes) – Chris McCord wrote a "Dev blog" article introducing the new “Streams” feature in LiveView
- https://twitter.com/germsvel/status/1629115591565971458 (https://twitter.com/germsvel/status/1629115591565971458?utm_source=thinkingelixir&utm_medium=shownotes) – German Valesco created a short screencast about streams that migrates from temporaryassigns to streams.
- https://blog.voltone.net/post/31 (https://blog.voltone.net/post/31?utm_source=thinkingelixir&utm_medium=shownotes) – Bram Verburg wrote a nice "Client-Side Enforcement of LiveView Security" blog post
- https://podcast.thinkingelixir.com/134 (https://podcast.thinkingelixir.com/134?utm_source=thinkingelixir&utm_medium=shownotes) – Interview with Bram Verburg
- https://twitter.com/cblavier/status/1630210369561014278 (https://twitter.com/cblavier/status/1630210369561014278?utm_source=thinkingelixir&utm_medium=shownotes) – Phoenix Storybook 0.5.0 was released.
- https://github.com/phenixdigital/phoenix_storybook/blob/main/CHANGELOG.md#v050-2023-02-27 (https://github.com/phenixdigital/phoenix_storybook/blob/main/CHANGELOG.md#v050-2023-02-27?utm_source=thinkingelixir&utm_medium=shownotes) – Phoenix Storybook changelog
- https://twitter.com/sasajuric/status/1628855249527099394 (https://twitter.com/sasajuric/status/1628855249527099394?utm_source=thinkingelixir&utm_medium=shownotes) – Elixir in Action by Saša Jurić 3rd edition available in Manning's Early Access Program (MEAP).
- https://twitter.com/ManningBooks/status/1628823200585973764 (https://twitter.com/ManningBooks/status/1628823200585973764?utm_source=thinkingelixir&utm_medium=shownotes) – Tweet with 45% off coupon code shared
- 45% off with code "mljuric3" till Mar 9
- https://twitter.com/bcardarella/status/1628778103903334400 (https://twitter.com/bcardarella/status/1628778103903334400?utm_source=thinkingelixir&utm_medium=shownotes) – LiveView Native update - they've passed the 80% mark of SwiftUI views
- https://twitter.com/bcardarella/status/1628778539242618882 (https://twitter.com/bcardarella/status/1628778539242618882?utm_source=thinkingelixir&utm_medium=shownotes) – The next milestones for LiveView Native
- https://github.com/liveviewnative/liveview-client-swiftui/issues/235 (https://github.com/liveviewnative/liveview-client-swiftui/issues/235?utm_source=thinkingelixir&utm_medium=shownotes) – Swift UI modifiers tracking list
- https://github.com/liveviewnative/liveview-client-swiftui/issues/238 (https://github.com/liveviewnative/liveview-client-swiftui/issues/238?utm_source=thinkingelixir&utm_medium=shownotes) – SwiftUI animations tracking list
Do you have some Elixir news to share? Tell us at @ThinkingElixir (https://twitter.com/ThinkingElixir) or email at [email protected] (mailto:[email protected])
Discussion Resources
- https://github.com/elixir-lang/elixir/pull/12358 (https://github.com/elixir-lang/elixir/pull/12358?utm_source=thinkingelixir&utm_medium=shownotes) – PR for dbg/2 that outputs boolean expression breakout
- https://www.youtube.com/playlist?list=PLd7I3U4fDsULTLqbRAkWzA002-IzMe8fl (https://www.youtube.com/playlist?list=PLd7I3U4fDsULTLqbRAkWzA002-IzMe8fl?utm_source=thinkingelixir&utm_medium=shownotes) – Playlist of youtube videos
- https://twitter.com/whatyouhide/status/1617521132529389568 (https://twitter.com/whatyouhide/status/1617521132529389568?utm_source=thinkingelixir&utm_medium=shownotes) – Shared that you are writing a book
- https://protohackers.com/ (https://protohackers.com/?utm_source=thinkingelixir&utm_medium=shownotes)
- https://learnyousomeerlang.com/ (https://learnyousomeerlang.com/?utm_source=thinkingelixir&utm_medium=shownotes)
- https://www.youtube.com/playlist?list=PLd7I3U4fDsULTLqbRAkWzA002-IzMe8fl (https://www.youtube.com/playlist?list=PLd7I3U4fDsULTLqbRAkWzA002-IzMe8fl?utm_source=thinkingelixir&utm_medium=shownotes) – List of Andrea's Protohacker videos in Elixir
- https://twitter.com/whatyouhide/status/1617521132529389568 (https://twitter.com/whatyouhide/status/1617521132529389568?utm_source=thinkingelixir&utm_medium=shownotes) – Andrea shared that he is writing a book
- https://pragprog.com/titles/lmelixir/testing-elixir/ (https://pragprog.com/titles/lmelixir/testing-elixir/?utm_source=thinkingelixir&utm_medium=shownotes) – Testing Elixir book by Andrea Leopardi and Jeffrey Matthias
- https://twitter.com/whatyouhide/status/1629781415251279874 (https://twitter.com/whatyouhide/status/1629781415251279874?utm_source=thinkingelixir&utm_medium=shownotes) – Andrea playing with creating videos for a series of distributed systems challenges.
- https://fly.io/dist-sys/ (https://fly.io/dist-sys/?utm_source=thinkingelixir&utm_medium=shownotes) – “A series of distributed systems challenges”
- https://codebeammexico.com/ (https://codebeammexico.com/?utm_source=thinkingelixir&utm_medium=shownotes) – CodeBeam Mexico - Andrea gave a keynote
- https://twitter.com/whatyouhide/status/1629063077680365568 (https://twitter.com/whatyouhide/status/1629063077680365568?utm_source=thinkingelixir&utm_medium=shownotes) – Concurrent Data Processing In Elixir - training at ElixirConf EU - 2023-04-19
Guest Information
- https://twitter.com/whatyouhide (https://twitter.com/whatyouhide?utm_source=thinkingelixir&utm_medium=shownotes) – on Twitter
- https://github.com/whatyouhide/ (https://github.com/whatyouhide/?utm_source=thinkingelixir&utm_medium=shownotes) – on Github
- https://mas.to/@whatyouhide (https://mas.to/@whatyouhide?utm_source=thinkingelixir&utm_medium=shownotes) – on Fediverse - @[email protected]
- https://andrealeopardi.com/ (https://andrealeopardi.com/?utm_source=thinkingelixir&utm_medium=shownotes) – Blog
Find us online
- Message the show - @ThinkingElixir (https://twitter.com/ThinkingElixir)
- Message the show on Fediverse - @[email protected] (https://genserver.social/ThinkingElixir)
- Email the show - [email protected] (mailto:[email protected])
- Mark Ericksen - @brainlid (https://twitter.com/brainlid)
- Mark Ericksen on Fediverse - @[email protected] (https://genserver.social/brainlid)
- David Bernheisel - @bernheisel (https://twitter.com/bernheisel)
- David Bernheisel on Fediverse - @[email protected] (https://genserver.social/dbern)
- Cade Ward - @cadebward (https://twitter.com/cadebward)
- Cade Ward on Fediverse - @[email protected] (https://genserver.social/cadebward)
Show Notes online - http://podcast.thinkingelixir.com/141 (http://podcast.thinkingelixir.com/141)
Elixir Community News
- https://phoenixframework.org/blog/phoenix-1.7-final-released (https://phoenixframework.org/blog/phoenix-1.7-final-released?utm_source=thinkingelixir&utm_medium=shownotes) – Phoenix 1.7.0 "final" released!
- https://gist.github.com/chrismccord/00a6ea2a96bc57df0cce526bd20af8a7 (https://gist.github.com/chrismccord/00a6ea2a96bc57df0cce526bd20af8a7?utm_source=thinkingelixir&utm_medium=shownotes) – Step-by-step upgrade guide
- https://elixirstream.dev/gendiff/phx_new/A93EFEDC8E8E71E5F1490CF31042679E (https://elixirstream.dev/gendiff/phx_new/A93EFEDC8E8E71E5F1490CF31042679E?utm_source=thinkingelixir&utm_medium=shownotes) – Diffs from 1.6.16 to 1.7.0 with live phx.gen.auth
- https://elixirstream.dev/gendiff/phx_new/018C3724F7E9A04683EA80F8A5657694 (https://elixirstream.dev/gendiff/phx_new/018C3724F7E9A04683EA80F8A5657694?utm_source=thinkingelixir&utm_medium=shownotes) – Diffs from 1.6.16 to 1.7.0 with non-live phx.gen.auth
- https://elixirstream.dev/gendiff/phx_new/F175E36352E8C1378CB3F913EBBAD6A0 (https://elixirstream.dev/gendiff/phx_new/F175E36352E8C1378CB3F913EBBAD6A0?utm_source=thinkingelixir&utm_medium=shownotes) – Diffs from 1.7.0 non-live to live
- https://elixirstream.dev/gendiff/phx_new/639AD8C21FD8CB22B72797EE5597118A (https://elixirstream.dev/gendiff/phx_new/639AD8C21FD8CB22B72797EE5597118A?utm_source=thinkingelixir&utm_medium=shownotes) – Diffs from 1.7.0-rc0 to final
- https://elixirstream.dev/gendiff/phx_new/FFCC88CB3B539BA68F30ADB69E4832BF (https://elixirstream.dev/gendiff/phx_new/FFCC88CB3B539BA68F30ADB69E4832BF?utm_source=thinkingelixir&utm_medium=shownotes) – Diffs from 1.7.0-rc1 to final
- https://elixirstream.dev/gendiff/phx_new/3007D95E4C49619702C5E550E0BBA5DD (https://elixirstream.dev/gendiff/phx_new/3007D95E4C49619702C5E550E0BBA5DD?utm_source=thinkingelixir&utm_medium=shownotes) – Diffs from 1.7.0-rc2 to final
- https://elixirstream.dev/gendiff/phx_new/5BF0D673DB427053F70DC9DC9F10DD09 (https://elixirstream.dev/gendiff/phx_new/5BF0D673DB427053F70DC9DC9F10DD09?utm_source=thinkingelixir&utm_medium=shownotes) – Diffs from 1.7.0-rc3 to final
- https://hexdocs.pm/phoenixhtml/Phoenix.HTML.FormData.html#toform/4 (https://hexdocs.pm/phoenix_html/Phoenix.HTML.FormData.html#to_form/4?utm_source=thinkingelixir&utm_medium=shownotes) – We noticed the new toform function and data structure being used by the new generators
- https://fly.io/phoenix-files/phoenix-dev-blog-streams/ (https://fly.io/phoenix-files/phoenix-dev-blog-streams/?utm_source=thinkingelixir&utm_medium=shownotes) – Chris McCord wrote a "Dev blog" article introducing the new “Streams” feature in LiveView
- https://twitter.com/germsvel/status/1629115591565971458 (https://twitter.com/germsvel/status/1629115591565971458?utm_source=thinkingelixir&utm_medium=shownotes) – German Valesco created a short screencast about streams that migrates from temporaryassigns to streams.
- https://blog.voltone.net/post/31 (https://blog.voltone.net/post/31?utm_source=thinkingelixir&utm_medium=shownotes) – Bram Verburg wrote a nice "Client-Side Enforcement of LiveView Security" blog post
- https://podcast.thinkingelixir.com/134 (https://podcast.thinkingelixir.com/134?utm_source=thinkingelixir&utm_medium=shownotes) – Interview with Bram Verburg
- https://twitter.com/cblavier/status/1630210369561014278 (https://twitter.com/cblavier/status/1630210369561014278?utm_source=thinkingelixir&utm_medium=shownotes) – Phoenix Storybook 0.5.0 was released.
- https://github.com/phenixdigital/phoenix_storybook/blob/main/CHANGELOG.md#v050-2023-02-27 (https://github.com/phenixdigital/phoenix_storybook/blob/main/CHANGELOG.md#v050-2023-02-27?utm_source=thinkingelixir&utm_medium=shownotes) – Phoenix Storybook changelog
- https://twitter.com/sasajuric/status/1628855249527099394 (https://twitter.com/sasajuric/status/1628855249527099394?utm_source=thinkingelixir&utm_medium=shownotes) – Elixir in Action by Saša Jurić 3rd edition available in Manning's Early Access Program (MEAP).
- https://twitter.com/ManningBooks/status/1628823200585973764 (https://twitter.com/ManningBooks/status/1628823200585973764?utm_source=thinkingelixir&utm_medium=shownotes) – Tweet with 45% off coupon code shared
- 45% off with code "mljuric3" till Mar 9
- https://twitter.com/bcardarella/status/1628778103903334400 (https://twitter.com/bcardarella/status/1628778103903334400?utm_source=thinkingelixir&utm_medium=shownotes) – LiveView Native update - they've passed the 80% mark of SwiftUI views
- https://twitter.com/bcardarella/status/1628778539242618882 (https://twitter.com/bcardarella/status/1628778539242618882?utm_source=thinkingelixir&utm_medium=shownotes) – The next milestones for LiveView Native
- https://github.com/liveviewnative/liveview-client-swiftui/issues/235 (https://github.com/liveviewnative/liveview-client-swiftui/issues/235?utm_source=thinkingelixir&utm_medium=shownotes) – Swift UI modifiers tracking list
- https://github.com/liveviewnative/liveview-client-swiftui/issues/238 (https://github.com/liveviewnative/liveview-client-swiftui/issues/238?utm_source=thinkingelixir&utm_medium=shownotes) – SwiftUI animations tracking list
Do you have some Elixir news to share? Tell us at @ThinkingElixir (https://twitter.com/ThinkingElixir) or email at [email protected] (mailto:[email protected])
Discussion Resources
- https://github.com/elixir-lang/elixir/pull/12358 (https://github.com/elixir-lang/elixir/pull/12358?utm_source=thinkingelixir&utm_medium=shownotes) – PR for dbg/2 that outputs boolean expression breakout
- https://www.youtube.com/playlist?list=PLd7I3U4fDsULTLqbRAkWzA002-IzMe8fl (https://www.youtube.com/playlist?list=PLd7I3U4fDsULTLqbRAkWzA002-IzMe8fl?utm_source=thinkingelixir&utm_medium=shownotes) – Playlist of youtube videos
- https://twitter.com/whatyouhide/status/1617521132529389568 (https://twitter.com/whatyouhide/status/1617521132529389568?utm_source=thinkingelixir&utm_medium=shownotes) – Shared that you are writing a book
- https://protohackers.com/ (https://protohackers.com/?utm_source=thinkingelixir&utm_medium=shownotes)
- https://learnyousomeerlang.com/ (https://learnyousomeerlang.com/?utm_source=thinkingelixir&utm_medium=shownotes)
- https://www.youtube.com/playlist?list=PLd7I3U4fDsULTLqbRAkWzA002-IzMe8fl (https://www.youtube.com/playlist?list=PLd7I3U4fDsULTLqbRAkWzA002-IzMe8fl?utm_source=thinkingelixir&utm_medium=shownotes) – List of Andrea's Protohacker videos in Elixir
- https://twitter.com/whatyouhide/status/1617521132529389568 (https://twitter.com/whatyouhide/status/1617521132529389568?utm_source=thinkingelixir&utm_medium=shownotes) – Andrea shared that he is writing a book
- https://pragprog.com/titles/lmelixir/testing-elixir/ (https://pragprog.com/titles/lmelixir/testing-elixir/?utm_source=thinkingelixir&utm_medium=shownotes) – Testing Elixir book by Andrea Leopardi and Jeffrey Matthias
- https://twitter.com/whatyouhide/status/1629781415251279874 (https://twitter.com/whatyouhide/status/1629781415251279874?utm_source=thinkingelixir&utm_medium=shownotes) – Andrea playing with creating videos for a series of distributed systems challenges.
- https://fly.io/dist-sys/ (https://fly.io/dist-sys/?utm_source=thinkingelixir&utm_medium=shownotes) – “A series of distributed systems challenges”
- https://codebeammexico.com/ (https://codebeammexico.com/?utm_source=thinkingelixir&utm_medium=shownotes) – CodeBeam Mexico - Andrea gave a keynote
- https://twitter.com/whatyouhide/status/1629063077680365568 (https://twitter.com/whatyouhide/status/1629063077680365568?utm_source=thinkingelixir&utm_medium=shownotes) – Concurrent Data Processing In Elixir - training at ElixirConf EU - 2023-04-19
Guest Information
- https://twitter.com/whatyouhide (https://twitter.com/whatyouhide?utm_source=thinkingelixir&utm_medium=shownotes) – on Twitter
- https://github.com/whatyouhide/ (https://github.com/whatyouhide/?utm_source=thinkingelixir&utm_medium=shownotes) – on Github
- https://mas.to/@whatyouhide (https://mas.to/@whatyouhide?utm_source=thinkingelixir&utm_medium=shownotes) – on Fediverse - @[email protected]
- https://andrealeopardi.com/ (https://andrealeopardi.com/?utm_source=thinkingelixir&utm_medium=shownotes) – Blog
Find us online
- Message the show - @ThinkingElixir (https://twitter.com/ThinkingElixir)
- Message the show on Fediverse - @[email protected] (https://genserver.social/ThinkingElixir)
- Email the show - [email protected] (mailto:[email protected])
- Mark Ericksen - @brainlid (https://twitter.com/brainlid)
- Mark Ericksen on Fediverse - @[email protected] (https://genserver.social/brainlid)
- David Bernheisel - @bernheisel (https://twitter.com/bernheisel)
- David Bernheisel on Fediverse - @[email protected] (https://genserver.social/dbern)
- Cade Ward - @cadebward (https://twitter.com/cadebward)
- Cade Ward on Fediverse - @[email protected] (https://genserver.social/cadebward)
More episodes of the podcast Thinking Elixir Podcast
283: Erlang Turns 27 and React at Risk
16/12/2025
282: Type Systems and View Transitions
09/12/2025
281: Planning for the Unexpected
02/12/2025
280: Dark Matter Developers
25/11/2025
279: Hot Code Upgrades and Hotter AI Takes
18/11/2025
278: WAL-ing Through Database Changes
11/11/2025
277: Searching Across the Hexiverse
04/11/2025
276: Elixir v1.19 Types and Speed
28/10/2025
275: From Slop to Success?
21/10/2025
274: Protocols, Permissions, and Performance
14/10/2025
ZARZA We are Zarza, the prestigious firm behind major projects in information technology.