Tag all the things!

There are several ways to add a “tagging” feature to an app. Sometimes it requires multiple tables and joins to solve the problem. Sometimes a simpler approach is both better and easier. This article explores a simple approach to tagging with Postgres array fields, a GIN index, and Ecto to add tagging functionality to an Elixir system.

https://fly.io/phoenix-files/tag-all-the-things/

Building Twitter with Ash + LiveView + Creator of Ash Framework

Together with the creator of Ash Framework, Zach Daniel, we combo Ash + LiveView to build a fully-featured twitter clone, along with a working admin panel!

https://www.youtube.com/watch?v=pwxShYmJgkk

Embedding XML templates in Phoenix 1.7

I recently ran into a problem embedding XML templates in a Phoenix 1.7 application. It took me a while to figure out what was going wrong and so I thought I’d write up this blog post to try and save other people time in the future.

https://culttt.com/2023/01/27/embedding-xml-templates-phoenix-1-7

Copy to Clipboard With Phoenix LiveView

Jason Stiebs shows a couple ways for a LiveView to make it easy for users to click and copy an important value to their clipboard. He shows two handy JS approaches that make it nicely reusable in an app!

https://fly.io/phoenix-files/copy-to-clipboard-with-phoenix-liveview/

Oban v2.14 Released

Oban v2.14 is released with a smattering of enhancements and a few major features, namely:

  • 🪶 SQLite3 support via the Lite engine
  • 👩‍🔬 Smarter job fetching (no more “stuck” queues in any environment)
  • 📡 Complete system tracking with telemetry enhancements

📰 See the for details, examples, and upgrade instructions https://hexdocs.pm/oban/2.14.0/changelog.html

Video object detection in Elixir using Nx and Bumblebee

In this tutorial we’re going to be building video object detection in Elixir using Nx and Bumblebee. We will parse a video and then run it through a neural network to make a prediction about the object that is displayed in the frame.

https://culttt.com/2023/01/26/video-object-detection-elixir-nx-bumblebee

How to Use Head and Tail in Elixir

This post covers the basics of how head and tail work with linked lists in general, as well as how to handle them specifically within Elixir. https://www.brewinstallbuzzwords.com/posts/elixir-head-tail/

Elixir Contexts in Action

I shared in this post some thoughts about organizing Elixir applications with contexts with real-world code examples.

Contexts are a simple yet powerful technique to handle complexities in an Elixir codebase. They are all about organizing applications through namespaces that group together the business logic for a specific domain or feature of the application, allowing us to break down the code into smaller and simpler chunks.

Thinking Elixir News 135

Episode 135 of Thinking Elixir. News-only episode covers some overlooked new Livebook features, Mint support added to Elixir GRPC, Phoenix Live Storybook is getting visual comparisons between versions, LiveView Native progress updates, the Circle CI breach and more!

https://podcast.thinkingelixir.com/135

Elixir Dependency Security: Mix, Hex, and Understanding the Ecosystem

The Elixir ecosystem has excellent tooling for securing your project’s dependencies. Learn more about how to use it in this article.

https://paraxial.io/blog/hex-security

Goodbye IO.inspect/2. Hello dbg/2

I vaguely recall seeing dbg when Elixir 1.14 first came out, but I hadn’t tried it until now. 🤯

No more IO.inspect/2 for me.

dbg/2 is way more powerful. For example, it understands Elixir code so it can print out every step in a pipeline! ⚡️

https://www.youtube.com/watch?v=Mw1032eS92A

Why We Chose Elixir Part 2: Elixir and the CELP Stack

Cees de Groot talks about how we decided to use Commanded, Elixir, LiveView and Phoenix (CELP) as a big part of our tech stack

https://metrist.io/blog/why-we-chose-elixir-part-2-elixir-and-the-celp-stack/

Phoenix 1.6 to 1.7 Video Upgrade Guide

The journey to upgrade Phoenix to version 1.6 to 1.7 is a difficult one; especially since the upgrade guide is incomplete. I made a quick tutorial on this upgrade to alleviate some of the short-comings of the official guide.

https://youtu.be/MxRDE63-loM

Stenography and Elixir

From the January 2023 Elixir Sydney meetup, a talk about using stenography to write Elixir code: https://www.youtube.com/watch?v=ZQO-5KfnCi4

PostgreSQL Logical Replication with Docker and Elixir

A step-by-step tutorial.

Start PostgreSQL Logical Replication and wal2json plug-in in Docker, then read the changes with Elixir Postgrex.

https://www.peterlau.xyz/posts/postgresql-logical-replication-with-docker-and-elixir/

LiveSelect

In this episode we’ll create a dynamic selection field using LiveSelect.

https://elixircasts.io/liveselect

Easy Caching in Elixir

We go over an easy technique to introduce a bit of state in Elixir by caching with an Agent.

ThinkingElixir 134: Inside the Security Working Group

Episode 134 of Thinking Elixir. We get a glimpse into the EEF’s Security Working Group with Bram Verburg. We learn about existing resources available to the community and we get hints of work underway for the future. Bram shares some cool security tips and insights as well!

https://podcast.thinkingelixir.com/134

Common Commands to Start New LiveView Project

Common commands to update Elixir, Hex and generators to start a new LiveView project with Authentication and UTC Datetime. Using Phoenix 1.7.

Async Processing in LiveView

When Chris McCord showed off doing image classification in a single-file Phoenix application, he used a really cool way to run an async Task in a LiveView that is linked to the LiveView process. This means if the user leaves the page, it automatically kills the worker process! This can come in really handy! In this post, we dig in deeper to see how it works and how to choose when to use this approach. https://fly.io/phoenix-files/liveview-async-task/

Next page