Articles authored by Elixir School contributors and members of the community.
Now With More Elixir!
How Elixir School migrated from Jekyll to a Phoenix powered site
TIL: Cleaner queries with Ecto `map`
Today I learned how to write cleaner `Ecto` select queries with the help of `Ecto.Query.map`.
Validating Accessibility and HTML with Rocket Validator
Learn how we're checking and monitoring the new Elixir School site to detect and fix accessibility and HTML issues using Rocket Validator.
Learning Elixir with others - The Elixir Book Club
Enjoy reading your favorite Elixir books with a group of other Alchemists, introducing the Elixir Book Club.
Clean Control Flow in Elixir with Pattern Matching and Immutability
Learn how to use pattern matching instead of guard clauses to implement really clean control flow in Elixir.
Real-Time SVG Charts with Contex and LiveView
Learn how to use the Contex package to render server-side SVG charts that you can update in real-time with LiveView.
Instrumenting Phoenix with Telemetry Part IV: Erlang VM Measurements with `telemetry_poller`
In this series, we're instrumenting a Phoenix app and sending metrics to StatsD with the help of Elixir and Erlang's Telemetry offerings. In Part III we'll incorporate Erlang's `telemetry_poller` library into our Phoenix app so that we can observe and report on Erlang VM Telemetry events.
Instrumenting Phoenix with Telemetry Part III: Phoenix + Ecto Telemetry Events
In this series, we're instrumenting a Phoenix app and sending metrics to StatsD with the help of Elixir and Erlang's Telemetry offerings. In Part III we'll examine Phoenix and Ecto's out-of-the-box Telemetry events and use `Telemetry.Metrics` to observe a wide-range of such events.
Instrumenting Phoenix with Telemetry Part II: Telemetry Metrics + Reporters
In this series, we're instrumenting a Phoenix app and sending metrics to StatsD with the help of Elixir and Erlang's Telemetry offerings. In Part II we'll use Elixir's `Telemetry.Metrics` and `TelemetryMetricsStatsd` libraries to define and send metrics to StatsD for a given Telemetry event.
Instrumenting Phoenix with Telemetry and LiveDashboard
The recent release of the LiveDashboard library allows us to visualize our application metrics, performance and behavior in real-time. In this post, we'll add LiveDashboard to our Phoenix app, examine the out-of-the-box features and take a look under the hood to understand how LiveDashboard hooks into Telemetry events in order to visualize them.
Instrumenting Phoenix with Telemetry Part I: Telemetry Under The Hood
In this series, we're instrumenting a Phoenix app and sending metrics to StatsD with the help of Elixir and Erlang's Telemetry offerings. In Part I we'll start out by setting up a basic, DIY Telemetry pipeline and examining how Erlang's Telemetry library works under the hood
LiveView Design Patterns - LiveComponent and the Single Responsibility Principle
It's easy to end up with an overly complex LiveView that houses lots of business rules and responsibilities. We can use `Phoenix.LiveComponent` to build a LiveView feature that is clean, maintainable and adherent to the Single Responsibility Principle.
Building Elixir School's Admissions portal
Follow along as we use build Elixir School's Slack invite portal: Admissions.
Building a Table Sort UI with Live View's `live_link`
We'll use LiveView's `live_link/2` together with the `handle_params/3` callback to allow users to sort a table in real-time.
Releasing an Umbrella App with Docker, Mix Release and Config
The release of Elixir 1.9 gave us `mix release` and the ability to support basic releases, runtime configuration and more, natively in Elixir. Learn how we were able to build a production release of an Elixir umbrella app with Docker, `mix release` and the new `Config` module.
Dispatch From ElixirConf 2019
We had a great time at ElixirConf 2019! Hear about Elixir School's two workshops, along with the highlight talks and activities that we enjoyed this year.
TIL How to Select Merge with Ecto.Query
Before you reach for adding another association to your schema, consider using `Ecto.Query#select_merge/3` with a virtual field instead.
Reviewing Elixir Conf EU 2019
ElixirSchool was invited to participate in a conference for the first time! Our own @gemantzu was there, and has a lot to say!
Using Channels with LiveView for Better UX