ThinkingElixir 136: Elixir around the Bonfire
Episode 136 of Thinking Elixir. The “fediverse” has become a hot topic of late. Fortunately, Mayel de Boniol joined to explain what federated means, what ActivityPub is, and more. Mayel is more than just knowledgeable in this area, he created Bonfire Networks as well! It’s written in Elixir and is a framework people can use to build their own federated servers to meet their specific needs, be that for tweet-like messages, meetup coordination, collaborative task lists or your own custom extensions. Being written in Elixir and OpenSource, he explains a number of libraries that can help those of us not even building a social app at all!
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.
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!
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!
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.
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! ⚡️
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.
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/
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!
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.