Elixir Streams - Elixir and Phoenix tips and courses

:wave: Hi everyone,

I’ve been posting short Elixir and Phoenix video tips and tricks for a little while on Twitter.

But now, I’ve consolidated them all in a new website called Elixir Streams. I hope to keep publishing them regularly.

If you’re interested in free short video tips, check it out!

:point_right: https://www.elixirstreams.com/

34 Likes

Just published one on comparing Datetime and Dates in Elixir:

:point_right: https://www.elixirstreams.com/tips/comparing-elixir-datetimes-and-dates

1 Like

And last week, I posted one on Elixir’s optional syntax!

:point_right: https://www.elixirstreams.com/tips/elixir-optional-syntax

1 Like

This one explode my mind! Short and interesting, good combination for video material.

Thank you, @germsvel!

1 Like

How to run a function N times using the Stream module:

:point_right: https://www.elixirstreams.com/tips/run-elixir-function-n-times

3 Likes

I’ve started building a tiny website with LiveView, learning it on the go, this tip is going to come in super handy: Elixir Streams |> Anatomy of a LiveView Test

1 Like

So glad to hear that! :muscle:

1 Like

Turning maps (and keyword lists) into structs :boom:

:point_right: Elixir Streams |> Turn maps (and keyword lists) into structs

2 Likes

Generating infinite sequences with Stream.unfold/2 :exploding_head:

:point_right: Elixir Streams |> Creating infinite sequences with Stream.unfold/2

1 Like

A short one on how ExUnit is an Elixir app (not just some script that gets run)

:point_right: Elixir Streams |> ExUnit. It's an app!

4 Likes

How a one line change allowed me to get rid of my InfiniteScroll JS hook (thanks for LiveView 0.19).

Check it out! :point_right: Elixir Streams |> Infinite scroll with LiveView's `phx-viewport-bottom`

1 Like

Recently used the new to_form/2 helper and loved how it can help us decouple the form (UI) from the core of our domain.

Check it out! :point_right: Elixir Streams |> Phoenix forms without changesets!

3 Likes

Hey, I follow you on Twitter, thanks for making these! I think it’s great to have free resources to expand the community!

3 Likes

Thanks for the kind words! :hugs: It’s always good to know people find the videos valuable.

2 Likes

Another way to decouple forms from database schemas. This time, with embedded schemas!

:eyes: :point_right: Elixir Streams |> Phoenix forms backed by embedded schemas

2 Likes

During ElixirConf US, José shared about the types Elixir might get. One part was unclear to me (needing an intersection type for multiple function heads), so I went digging a bit to get a better understanding.

Hope it helps others too!

:point_right: Elixir Streams |> Elixir's intersection types

2 Likes

I have another one based on the Elixir types paper. This time, it’s about operator precedence. Check it out!

:point_right: Elixir Streams |> Elixir Types: Operator Precedence

LiveView 0.20 comes with a nice improvement to debug HEEX templates!

Add config :phoenix_live_view, debug_heex_annotations: true to your dev config, and you’ll see HTML annotations in your browser’s inspector!

Check it out!

:point_right: Elixir Streams |> LiveView 0.20 HEEX Debug Annotations

1 Like

I loved the blog post on strong arrows that José recently shared in the Elixir lang website. It helped clarify what they are and why they’re needed.

I made a short video of my understanding. Hope it helps others understand them too! :partying_face:

:point_right: Elixir Streams |> Strong Arrows

(José’s post for further reference: Strong arrows: a new approach to gradual typing - The Elixir programming language)

1 Like

Everybody is talking about LiveView 0.20’s async assigns. And for good reason!

I tested them out, and they’re awesome. Check it out!

:point_right: Elixir Streams |> LiveView's Async Assigns

3 Likes