Do you want to pick up from where you left of?
Take me there

Recent Posts

Articles authored by Elixir School contributors and members of the community.

testing exunit

Run specific test cases with ExUnit

Learn how you can easily run one specific test case or a group test cases in Elixir without having to run through the whole test suites and custom workarounds.

liveview components liveview helpers

Components with dynamic attributes

Learn how you can support dynamic attributes when using reusable components with assigns_to_attribute/2 function.

:odbc and Efficient Querying With Streams

Learn how to use Erlang’s built in :odbc interface to query using streams effectively

announcement

Now With More Elixir!

How Elixir School migrated from Jekyll to a Phoenix powered site

ecto

TIL: Cleaner queries with Ecto map

Today I learned how to write cleaner Ecto select queries with the help of Ecto.Query.map.

announcement

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.

announcement

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.

general

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.

liveview libraries

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.

phoenix telemetry instrumenting

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.

phoenix telemetry instrumenting

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.

phoenix telemetry instrumenting

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.

phoenix telemetry instrumenting liveview

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.

phoenix instrumenting telemetry

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 software design

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.

admissions software design

Building Elixir School’s Admissions portal

Follow along as we use build Elixir School’s Slack invite portal: Admissions.

liveview

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.

docker releases config umbrellas deployment

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.

conference

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.

ecto til

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.