Episode 52
IOList and Postgres with Nathan Long
June 15th, 2021
49 mins 37 secs
About this Episode
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